MySQL在表上创建更新/插入触发器
是否可以在mysql中为此创建触发器: 我有一张这样的桌子MySQL在表上创建更新/插入触发器,mysql,triggers,Mysql,Triggers,是否可以在mysql中为此创建触发器: 我有一张这样的桌子 Column1_id Column2_val 1 2 2 2 DELIMITER $$ CREATE TRIGGER test AFTER INSERT, UPDATE ON `table1` FOR EACH ROW BEGIN SET x = (SELECT count(*) FROM `table1` WHERE Column2_val=NEW.Col
Column1_id Column2_val
1 2
2 2
DELIMITER $$
CREATE TRIGGER test AFTER INSERT, UPDATE ON `table1`
FOR EACH ROW BEGIN
SET x = (SELECT count(*) FROM `table1` WHERE Column2_val=NEW.Column2_val)
IF (x > 1) THEN
INSERT INTO `table2` VALUES(NEW.Column1_id, NEW.Column2_val)
END IF;
END$$
DELIMITER ;
第二桌
Column1_id1 Column2_id2
1 2
因此,如果两行的Column2\u val
值相同,那么在更新或插入时,我想将其ID插入第二个表中。任何帮助都将非常感激
我写了这篇文章,但似乎不起作用。我做错什么了吗
BEGIN
set @user_id_update = (SELECT Column1_id from users where in_play = 2 LIMIT 1);
INSERT INTO player_pairs(PLAYER1_ID, PLAYER2_ID, GAME_ID)
VALUES (new.Column1_id, @user_id_update, 2);
UPDATE users SET in_play = 1 where Column1_id in(@user_id_update, new.user_id);
END
试试这样的
Column1_id Column2_val
1 2
2 2
DELIMITER $$
CREATE TRIGGER test AFTER INSERT, UPDATE ON `table1`
FOR EACH ROW BEGIN
SET x = (SELECT count(*) FROM `table1` WHERE Column2_val=NEW.Column2_val)
IF (x > 1) THEN
INSERT INTO `table2` VALUES(NEW.Column1_id, NEW.Column2_val)
END IF;
END$$
DELIMITER ;
试试这个,让我知道:
DELIMITER $$
CREATE TRIGGER test AFTER INSERT, UPDATE ON `table1`
FOR EACH ROW BEGIN
IF (select count(Column2_val) from `table1` WHERE Column2_val=NEW.Column2_val> 0 ) THEN
INSERT INTO `table2` VALUES(NEW.Column1_id, NEW.Column2_val)
END IF;
END$$
DELIMITER ;
但是,如果您想在第一个表的任何列上有任何重复记录,可以将此列设置为“唯一”。添加有关您想要的记录的更多信息,但我不会尝试将新id和新val插入表2中。我想添加新id和另一个旧id,这与当前行(其中值为2)不同。当我更新时,它似乎不起作用trigger@user1884193您是说在表2中插入的方式有问题,还是触发器不工作?触发器不工作。我只是用java来完成这个任务。谢谢大家。请发布你们的答案,以进一步了解解决方案,这可能会帮助其他人。