我有一个产品的大型数据库,每天我都希望运行一个将active ='1'的行移动到新表中并删除原始行的脚本。将行迁移到新表中,然后删除它们
但我似乎无法找到适当的Mysql命令来完成迁移。
如果有人能够说明情况,那将是非常好的。
非常感谢
我有一个产品的大型数据库,每天我都希望运行一个将active ='1'的行移动到新表中并删除原始行的脚本。将行迁移到新表中,然后删除它们
但我似乎无法找到适当的Mysql命令来完成迁移。
如果有人能够说明情况,那将是非常好的。
非常感谢
你应该能够完成这个以下
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语句到新表从AS SELECT旧表WHERE活动= 1。
创建DELETE语句,该语句从第一个表中删除它在第二个表中找到的任何行。
commit;
如果有代码,我会给它一个+1 –
@Clodoaldo - 如果Randy键入OP的代码,你会给它一个+2;) – KevinDTimm
小心模糊的边缘...新行可能会在这两个语句之间插入active = 1,从而产生不希望的结果。 – Randy
是的,如果你担心你可以在插入和删除期间锁定表格。尽管我从旧桌子被丢弃的问题来看。 – Kibbee