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

 

posted @ 2020-07-01 14:58  一步至遥  阅读(1493)  评论(0编辑  收藏  举报
TOP