我正在尝试设置一个触发器,以便在更新主表时在日志表中记录时间戳。我有一个名为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
//
任何人都可以阐明此错误吗?
触发器
应使用常规 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
//
set 用于设置变量(用户、系统或存储的例程变量)的值。
要更新日志表中的字段,需要发出 UPDATE 查询,例如
UPDATE log SET modified_timestamp = CURRENT_TIMESTAMP() WHERE ...