将行迁移到新表,然后删除它们


Migrating rows to a new table and then deleting them

我有一个大的产品数据库,每天我希望运行一个脚本,将具有active = '1'的行移动到一个新表中,并删除原始行。

但是我似乎找不到合适的Mysql命令来完成迁移。

如果有人能说明一下情况就太好了。

Thanks to lot

您应该能够使用以下命令完成此操作

CREATE TABLE NewTable LIKE OldTable;
INSERT INTO NewTable 
SELECT * FROM OldTable WHERE Active = 1;
DELETE FROM OldTable WHERE Active = 1;

就像好奇一样,这样做的意义是什么?如果担心行不清晰,可以执行如下删除操作

DELETE OldTab FROM OlTable AS OldTab
INNER JOIN NewTable AS NewTab
ON OldTab.ID = NewTab.ID

没有任何细节,下面是你要做的:

创建一个INSERT语句到新表,如SELECT from旧表WHERE active = 1.

创建一个DELETE语句,从第一个表中删除它在第二个表中找到的所有行。

提交;