我有一张桌子:
CREATE TABLE `data_table` (
`data_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`field1` INT NOT NULL ,
`field2` INT NOT NULL ,
`field3` INT NOT NULL
) ENGINE = MYISAM ;
Run Code Online (Sandbox Code Playgroud)
我会记录任何机会到field1,2或3:
CREATE TABLE `data_tracking` (
`tracking_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`data_id` INT NOT NULL ,
`field` VARCHAR( 50 ) NOT NULL ,
`old_value` INT NOT NULL ,
`new_value` INT NOT NULL ,
`modified` DATETIME NOT NULL
) ENGINE = MYISAM ;
Run Code Online (Sandbox Code Playgroud)
我正在使用MySQL 5,我想创建一个触发器.我想在data_table更新后随时在data_tracking中插入一个新行,并记录旧的/更新的值,以及更改的字段.我尝试了以下没有任何成功.
DELIMITER $$ …Run Code Online (Sandbox Code Playgroud) 我看了这个文章的建设时间架构点为您的数据库.它在我看来是一个优雅的解决方案,但这篇文章已经从前一段时间(2007年)开始.我想知道:1.还有其他方法可以解决这个问题吗?2.这种方法和其他方法的专业和概念是什么?3.我可以重用这些方法的mysql实现吗?