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