Mysql 移动值并在传输后删除它们

Mysql 移动值并在传输后删除它们,mysql,sql,Mysql,Sql,我有两张桌子。第一个是“订单”,第二个是“旧订单”,我想做的是按下按钮后,表“订单”中的所有值都应该进入表“旧订单”,转移后,表“订单”中的值应该被删除。现在我只需要移动值,但我不知道在移动之后如何删除它们。下面是我的代码 INSERT INTO old_orders (name) SELECT name FROM orders WHERE id=$id"); 您的语句将具有给定id的条目(我认为只有一个)复制到新表中 要“移动”条目,必须在复制后将其删除 这可以通过

我有两张桌子。第一个是“订单”,第二个是“旧订单”,我想做的是按下按钮后,表“订单”中的所有值都应该进入表“旧订单”,转移后,表“订单”中的值应该被删除。现在我只需要移动值,但我不知道在移动之后如何删除它们。下面是我的代码

INSERT INTO old_orders (name)
    SELECT name
    FROM orders WHERE id=$id");

您的语句将具有给定id的条目(我认为只有一个)复制到新表中

要“移动”条目,必须在复制后将其删除

这可以通过
从订单中删除,其中id=$id

小心:这样做,条目可能会获得新ID。为确保id也被复制,您必须将语句更改为:

INSERT INTO old_orders (id, name)
    SELECT id, name
    FROM orders WHERE id=$id;

也许您真的需要对
订单
执行
删除
触发器。如果需要删除该表中的所有订单,可以使用
截断表订单
而不是
删除
它们。这是清理桌子的最快方法。你为什么要这样做?这似乎是个坏主意。现在我可以移动值了。不,您可以复制它们。@astentx您可以使用
截断表顺序
而不是删除它们。这是清理桌子的最快方法。。否。请注意-
订单。id
用于识别行。如果
id
为自动递增主键,则
TRUNCATE
将自动递增计数器重置为1。