一  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

 

相关文章:

  • 2021-05-20
  • 2022-01-18
  • 2021-11-04
  • 2022-12-23
  • 2021-10-06
  • 2022-12-23
猜你喜欢
  • 2021-12-21
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-11
  • 2021-11-19
相关资源
相似解决方案