我正在制作一个名册创建工具,该工具的一部分是从名册池中删除已毕业的学生,​​并将其放入另一个名为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语句,也没有收到错误。任何帮助表示赞赏!

最佳答案

您必须在此处运行两个不同的命令:

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");


另外,请确保在同一事务中运行这两个命令。这样,如果发生任何错误,您将有机会回滚。

关于mysql - 将信息从一个表移动到另一个表,然后从其原始位置删除该数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6997296/

10-11 02:33