是否可以在mysql中为此创建一个触发器:
我有一张这样的表
Column1_id Column2_val
1 2
2 2
第二张表
Column1_id1 Column2_id2
1 2
如果twos行具有Column2_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
答案 0 :(得分:0)
尝试类似这样的事情
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 ;
答案 1 :(得分:0)
试试这个,让我知道:
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 ;
但是,如果您希望在第一个表的任何列上都有任何dublicate记录,则可以将此列设为“唯一”。