DELIMITER //
CREATE TRIGGER `kill_repeats` BEFORE INSERT ON `table_name`
FOR EACH ROW BEGIN
if NEW.name1<>'' and NEW.name1 in (select name1 from table_name)
then SIGNAL SQLSTATE 'Q001' SET MESSAGE_TEXT = 'name1 has been exsits';
end if;
if NEW.name2<>'' and NEW.name2 in (select name2 from table_name)
then SIGNAL SQLSTATE 'Q001' SET MESSAGE_TEXT = 'name2 has been exsits';
end if;
if NEW.name3<>'' and NEW.name3 in (select name3 from table_name)
then SIGNAL SQLSTATE 'Q001' SET MESSAGE_TEXT = 'name3 has been exsits';
end if;
/*需要检测多少个字段就可以重复几次*/
END
MYSQL 去重触发器 并且允许空值重复的策略
最新推荐文章于 2023-07-28 14:50:38 发布