0

我正在尝试设置触发器以在更新主表时在日志表中记录时间戳。我有一个名为 cm 的主表,并且有一个带有时间戳列的日志表。

日志表中的时间戳列设置如下:

ALTER TABLE log ADD COLUMN modified_timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

我尝试的触发器如下但抛出此错误“错误代码1193。未知系统变量'modified_timestamp'

扳机:

DELIMITER //
CREATE TRIGGER `ahrq cm`.`table_timestamp` BEFORE UPDATE ON `ahrq    cm`.`ahrq_inventory_all`
FOR EACH ROW begin

set log.modified_timestamp=CURRENT_TIMESTAMP();

end
//

任何人都可以阐明这个错误吗?

4

2 回答 2

1

您的触发器应该log使用普通的 SQL 命令更新表:

DELIMITER //
CREATE TRIGGER `ahrq cm`.`table_timestamp` BEFORE UPDATE ON `ahrq cm`.`ahrq_inventory_all`
FOR EACH ROW begin

INSERT INTO log (modified_timestamp) VALUES (CURRENT_TIMESTAMP());

end
//
于 2012-04-24T14:54:12.667 回答
0

set 用于设置变量(用户、系统或存储的例程变量)的值。

要更新日志表中的字段需要发出UPDATE查询,例如

UPDATE log SET modified_timestamp = CURRENT_TIMESTAMP() WHERE ...
于 2012-04-24T14:56:38.083 回答