如何在触发器中更新列而不是删除?

时间:2015-12-09 17:02:29

标签: mysql triggers

我想将列存档更改为1,而不是删除行。

例如,我有一行包含一些属性,最后一行是" archive",通常是0,删除sql完成,它不能删除行,但是juste更改属性存档为1。

我认为我必须使用触发器。我试过了,但它不起作用。

删除后我做了一个触发器,删除后插入了这行。

BEGIN
    INSERT INTO `type`(`tId`,`archive`) VALUES (OLD.tId, 1);
END

然后我有错误:

#1442 - Can't update table 'type' in stored function/trigger because it is already used by statement which invoked this stored function/trigger. 

问候

2 个答案:

答案 0 :(得分:1)

为什么先删除并再次插入相同的数据?

你能使用这样的update语句吗?

UPDATE `type` SET `archive`=1 WHERE `tId` = OLD.tid;

答案 1 :(得分:0)

根据您的说明,这意味着您已经存在该行,因此请尝试在UPDATE上尝试INSERT

UPDATE table_name SET archive='1' WHERE tid=OLD.Tid;