在插入新行之前删除行

时间:2016-04-29 11:26:56

标签: mysql sql database

如何在同一个表中插入新行之前删除行。我尝试使用触发器,但我读到它是不可能的,因为它可能导致死锁。

我还想在删除它之前将应删除的行保存到另一个表(例如表B),然后再插入一个新表(在表A中)。

还有其他方法吗?

PS:他们将拥有相同的密钥

1 个答案:

答案 0 :(得分:0)

您可以使用UPDATE ...

UPDATE tbl
SET col1 = newCol1,
    col2 = newCol2
WHERE etc = etc

如果您想将更新的行插入另一个表格,可以使用TRIGGER AFTER UPDATE

CREATE TRIGGER TriggerName ON Tbl
AFTER UPDATE
AS
INSERT INTO Log (Col1, Col2) 
SELECT Col1, Col2
FROM deleted