gpt4 book ai didi

MySQL 触发器检查值是否存在于另一个数据库的表中

转载 作者:行者123 更新时间:2023-11-30 22:44:21 35 4
gpt4 key购买 nike

我需要创建一个触发器,插入之前将检查是否试图添加的用户名已经存在 (区分大小写)在另一个数据库(同一个 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<之外还有什么更好的方法来停止插入吗?/?

最佳答案

尝试:

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);

关于MySQL 触发器检查值是否存在于另一个数据库的表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30086649/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com