Triggers Phpmyadmin中更新触发器之前如何获取更新值
我试图在phpmyadmin中获取一个触发器,该触发器将在更新特定表之前和之后创建一个具有特定列值(Triggers Phpmyadmin中更新触发器之前如何获取更新值,triggers,phpmyadmin,Triggers,Phpmyadmin,我试图在phpmyadmin中获取一个触发器,该触发器将在更新特定表之前和之后创建一个具有特定列值(信誉)的审核 比如: CREATE DEFINER=`test`@`%` TRIGGER `monitor update reputation` BEFORE UPDATE ON `game_resorts` FOR EACH ROW INSERT INTO `audit` (`id`, `datetime`, `id_resort`, `reputation`) VALUES (NULL, CU
信誉
)的审核
比如:
CREATE DEFINER=`test`@`%`
TRIGGER `monitor update reputation`
BEFORE UPDATE ON `game_resorts`
FOR EACH ROW
INSERT INTO `audit` (`id`, `datetime`, `id_resort`, `reputation`)
VALUES (NULL, CURRENT_TIMESTAMP, id_resort, reputation)
主要问题是如何检索将被更新的
id\u度假酒店
;然后,在MySQL中,声誉
值?将使用NEW
关键字,因此我假设使用phpmyadmin时情况相同
例如:
CREATE DEFINER=`test`@`%`
TRIGGER `monitor_update_reputation` //don't use spaces in a trigger name
BEFORE UPDATE ON `game_resorts`
FOR EACH ROW
INSERT INTO `audit` (`datetime`, `id_resort`, `reputation`)
VALUES (CURRENT_TIMESTAMP, NEW.id_resort, NEW.reputation)
如果您想在更新之前获取id\u resort
或声誉
的值,可以使用OLD
关键字:
...
VALUES (CURRENT_TIMESTAMP, OLD.id_resort, OLD.reputation)
另外,我认为不能将NULL
插入主键列。如果audit
表上的id
设置为自动递增,则只需从INSERT
语句中省略id
列即可