我需要创建一个触发器,插入之前会检查 用户名是否正在尝试添加,已存在< / strong>(区分大小写)在另一个数据库(相同的mysql服务器)的表中。
这是我到目前为止所做的:
CREATE TRIGGER trig_user_insert BEFORE INSERT ON users
FOR EACH ROW BEGIN
IF ( ) THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Error message';
END IF;
END
那么,如果只有存在于另一个数据库的表中然后插入行,我该如何才能使更有效的方法来阻止SIGNAL
以外的插入?
答案 0 :(得分:0)
尝试:
CREATE TRIGGER tg_bi_users
BEFORE INSERT ON users
FOR EACH ROW
SET NEW.user = IF(EXISTS
(
SELECT *
FROM othertable
WHERE user IN(NEW.user)
), NULL, NEW.user);