我正在尝试设置触发器,以在主表更新时在日志表中记录时间戳。我有一个名为cm的主表,并且有一个带有时间戳列的日志表。
日志表中的timestamp列设置如下:
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
//
有人能说清楚这个错误吗?
答案 0 :(得分:1)
您的触发器应使用普通的SQL命令更新log
表:
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
//
答案 1 :(得分:0)
set用于设置变量值(用户,系统或存储的例程变量)。
要更新日志表中的字段,需要发出UPDATE查询,例如
UPDATE log SET modified_timestamp = CURRENT_TIMESTAMP() WHERE ...