将信息从一个表移动到另一个表,然后从其原点删除该数据

时间:2011-08-09 13:55:48

标签: mysql sql insert sql-delete

我正在创建一个名册创建工具,该工具的一部分是从名册池中删除已毕业的学生并将其放入另一个名为CompletedArchive的表中。将它们复制到另一个表后,我希望它们从RosterPool表中删除。

INSERT INTO CompletedArchive ( Rate, FullName, Last4, Graduated )
SELECT RosterPool.Rate, RosterPool.FullName, RosterPool.Last4, RosterPool.Graduated
FROM RosterPool
WHERE ((RosterPool.Graduated)="Yes");

我无法找到添加DELETE语句的位置而不会出错。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:1)

你必须在这里运行两个不同的命令:

INSERT INTO CompletedArchive ( Rate, FullName, Last4, Graduated )
SELECT RosterPool.Rate, RosterPool.FullName, RosterPool.Last4, RosterPool.Graduated
FROM RosterPool
WHERE ((RosterPool.Graduated)="Yes");

然后

DELETE FROM RosterPool
WHERE ((RosterPool.Graduated)="Yes");

此外,请确保在同一事务中运行这两个命令。这样,如果出现任何问题,您将有机会回滚。