insert into select 和select into from 備份表


一  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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM