MySQL:触发器将根据 DELETE 和 INSERT 增加列值
MySQL: Trigger that'll increment a columns value, based on DELETE and INSERT
我想设置一个触发器来增加列值。如果我执行 INSERT,我希望它为 + 1,如果我执行 DELETE,我希望它为 -1。
INSERT INTO `users saved` SET `userid` = '$user->id', `topicid` = '$topicid'
DELETE FROM `users saved` WHERE `userid` = '$user->id' AND `topicid` = '$topicid' LIMIT 1
数据库架构
`users saved`
id | userid | topicid
`total`
topicid | value
我希望触发器生效的table是total
,我希望值列(int)上升或下降。
我不确定从哪里开始。
虽然我没有测试,但应该可以,删除语句非常相似:
CREATE TRIGGER increment_value_on_insert
AFTER INSERT ON `users saved`
REFERENCING
NEW ROW as new_row
FOR EACH ROW BEGIN
UPDATE total
SET value = value+1
WHERE
topicid = new_row.topicid
END
我想设置一个触发器来增加列值。如果我执行 INSERT,我希望它为 + 1,如果我执行 DELETE,我希望它为 -1。
INSERT INTO `users saved` SET `userid` = '$user->id', `topicid` = '$topicid'
DELETE FROM `users saved` WHERE `userid` = '$user->id' AND `topicid` = '$topicid' LIMIT 1
数据库架构
`users saved`
id | userid | topicid
`total`
topicid | value
我希望触发器生效的table是total
,我希望值列(int)上升或下降。
我不确定从哪里开始。
虽然我没有测试,但应该可以,删除语句非常相似:
CREATE TRIGGER increment_value_on_insert
AFTER INSERT ON `users saved`
REFERENCING
NEW ROW as new_row
FOR EACH ROW BEGIN
UPDATE total
SET value = value+1
WHERE
topicid = new_row.topicid
END