此代码与我的问题非常相似。我不确定为什么表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/