一 insert into select要求表必須存在
INSERTINTO order_record SELECT * FROM order_today FORCEINDEX (idx_pay_suc_time)WHERE pay_success_time <= '2020-03-08 00:00:00';
FORCEINDEX (idx_pay_suc_time)指定使用索引,避免使用了低效的索引。
使用 insert into tablA select * from tableB 語句時,一定要確保 tableB 后面的 where,order 或者其他條件,都需要有對應的索引,來避免出現 tableB 全部記錄被鎖定的情況。
二 select into from要求表必須不存在,插入時自動創建(MySQL中沒有此語法,但是可以用INSERT INTO SELECT)
SELECT * INTO order_record FROM order_tody FORCEINDEX (idx_pay_suc_time) WHERE pay_success_time <= '2020-03-08 00:00:00'
補充備份表的幾種方法
1.復制表結構及其數據
CREATE TABLE table_backup AS SELECT * FROM table_old
2.復制表結構及其數據
CREATE TABLE table_backup LIKE table_old
3.只復制表數據
表結構一樣
INSERT INTO table_backup SELECT * FROM table_old
表結構一樣
INSERT INTO table_backup(column1,column2...) SELECT column1,column2... FROM table_old