我在数据库中有一个结构,其中有一个问题表,其中包含 4 列结果,因此,int id,字符串问题,int a,int b,int c,int d
以及答案表,其中包含int id,int user_id,int Question_id,字符串answer。
现在答案表中的答案可以是 a、b、c 或 d,在问题表中我有每个答案的数量。
我想要做的是创建一个触发器,当插入新答案时,该触发器将自动增加相应列上的值。
DELIMITER $$
DROP TRIGGER IF EXISTS `answer_INSERT` $$
CREATE TRIGGER `answer_INSERT`
AFTER INSERT ON `answer`
FOR EACH ROW
BEGIN
IF(answer.answer LIKE ('a'))
UPDATE `question` SET `a`=`a`+1 WHERE `id`=answer.question_id
ELSE IF(answer.answer LIKE ('b'))
UPDATE `question` SET `b`=`b`+1 WHERE `id`=answer.question_id
....
END $$
DELIMITER ;
我知道代码并不完全正确,但这或多或少是我想要做的。
最佳答案
DELIMITER $$
DROP TRIGGER IF EXISTS `answer_INSERT` $$
CREATE TRIGGER `answer_INSERT`
AFTER INSERT ON `answer`
FOR EACH ROW
BEGIN
IF NEW.answer = 'a' THEN
UPDATE `question` SET `a` = `a`+1 WHERE `id` = NEW.question_id;
ELSEIF NEW.answer = 'b' THEN
UPDATE `question` SET `b` = `b`+1 WHERE `id` = NEW.question_id;
END IF;
END $$
DELIMITER ;
关于mysql - MYSQL中的触发器根据插入的值更新不同的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34284962/