此代码与我的问题非常相似。我不确定为什么表A根本没有更新。我在末尾SELECT * FROM A并且A保持为空。我已经呆了几个小时了,无法弄清楚为什么我的扳机不起作用。谢谢

CREATE TABLE A
(
aVariable int
);

CREATE TABLE B
(
bVariable int
);

delimiter //

CREATE TRIGGER AB
AFTER INSERT ON B
FOR EACH ROW
BEGIN
    IF (NEW.bVariable < 10) THEN //I also tried bVariable < 10
       INSERT INTO A VALUES (11)
    END IF;
END;

delimiter ;

INSERT INTO B VALUES (1);

SELECT * //A is still empty
FROM A;

SELECT *
FROM B;

最佳答案

使用正确的语法进行注释。请参见9.6 Comment Syntax

DROP TABLE IF EXISTS B;
DROP TABLE IF EXISTS A;

CREATE TABLE A (
  aVariable int
);

CREATE TABLE B (
  bVariable int
);

DELIMITER //

CREATE TRIGGER AB AFTER INSERT ON B
FOR EACH ROW
BEGIN
 -- IF (NEW.bVariable < 10) THEN //I also tried bVariable < 10
    IF (NEW.bVariable < 10) THEN -- //I also tried bVariable < 10
       -- INSERT INTO A VALUES (11)
       INSERT INTO A VALUES (11);
    END IF;
END//

DELIMITER ;

INSERT INTO B VALUES (1);

--  SELECT * //A is still empty
SELECT * -- //A is still empty
FROM A;

SELECT *
FROM B;

关于mysql - MySQL触发器不更新表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35648715/

10-11 05:14