MySQL:将整行从一个复制到另一个并删除原始行

puk*_*978 4 mysql

有人可以解释(或指向正确的方向)如何将多行从一个表移动到另一个表并根据设定的标准从原始表中删除该行?

我明白

INSERT INTO table2 SELECT * FROM table1
Run Code Online (Sandbox Code Playgroud)

将数据从一个表复制到另一个表但我需要删除原始表.原因是有人建议加快查询表,我应该将所有冗余数据(已结束,过期,超过3个月的产品)从主表移动到另一个表.

有一些背景知识,我有一个包含产品的表,有些产品已经过期但产品仍然需要访问.大约有50,000种产品已经过期,2,000种产品已经过期.有一个状态列(int 1 = active,2 = expired等)来确定在前端显示的内容.

我想这篇文章是2个问题:

  1. 有没有更好的方法来加速查询产品表而不删除过期的项目?
  2. 如果没有,如何将行从一个表移动到另一个表

非常感谢!

Kea*_*nge 6

INSERT INTO table2(column_name1,column_name2)SELECT column_name1,column_name2 FROM table 1 WHERE(where子句)

DELETE FROM table1 WHERE(where子句)

上面的来源:mysql在表之间移动行