我想拥有自动" userstamps"在我的数据库中。意思是,每次用户更改某些内容时,他的Userid都会写入一列。 我尝试使用"更新后#34;触发器,但我的代码不起作用:
CREATE DEFINER = CURRENT_USER TRIGGER `db`.`tantworten_AFTER_UPDATE`
AFTER UPDATE ON `tantworten` FOR EACH ROW
BEGIN
Insert into tantworten (User)
Values (current_user());
END
提前致谢!
答案 0 :(得分:1)
我会这样做(我现在无法测试):
CREATE DEFINER = CURRENT_USER TRIGGER `db`.`tantworten_AFTER_UPDATE`
BEFORE UPDATE ON `tantworten` FOR EACH ROW
BEGIN
SET NEW.User = current_user();
END
答案 1 :(得分:0)
好的,我解决了。 Jean Doux的答案几乎是正确的(谢谢!)。 MySQL无法更新同一个表,其中触发器是使用AFTER UPDATE发出的。 因此,我只是将触发器设置为BEFORE UPDATE。
我希望这也有助于其他人:
create trigger userupdate Before Update on tantworten
FOR EACH ROW
set New.User = current_user();