【发布时间】:2016-09-02 03:48:32
【问题描述】:
用户(ID、公司、名称)
这是我的表格架构。在插入新行之前,我应该如何编写触发器来检查重复项。我需要检查传入的数据是否与传入的记录重复。如果传入记录存在,则不应将该记录插入到表中。如果它不重复该记录应该插入!
下面是我尝试过的触发器,但它在“最后”行出现错误
DELIMITER $$
CREATE TRIGGER userDuplicate
BEFORE INSERT ON `users` FOR EACH ROW
BEGIN
DECLARE recordId VARCHAR(999);
SET recordId = (SELECT id FROM users WHERE company= NEW.companyAND name = NEW.name);
IF recordId IS NOT NULL
THEN
INSERT INTO users (company,name) VALUES (NEW.name,NEW.company);
END IF;
END;
$$ DELIMITER;
【问题讨论】:
-
您是否尝试过创建唯一索引? stackoverflow.com/questions/635937/…
-
是的!但我需要实现一个触发器。
-
您需要触发器还是只插入不重复的记录而不会出错?
-
我需要一个触发器来插入任何不重复且不抛出任何异常或错误的行
标签: mysql sql database triggers relational-database