Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以在MySQL触发器中使用“插入不存在的位置”来避免插入重复记录吗?_Mysql_Sql_Triggers_Insert_Duplicates - Fatal编程技术网

我可以在MySQL触发器中使用“插入不存在的位置”来避免插入重复记录吗?

我可以在MySQL触发器中使用“插入不存在的位置”来避免插入重复记录吗?,mysql,sql,triggers,insert,duplicates,Mysql,Sql,Triggers,Insert,Duplicates,我可以使用INSERT INTO WHERE NOT EXISTS in MySQL触发器来避免插入重复记录,例如- INSERT INTO `user` (`id`, `name`) VALUES (1, 'John') WHERE NOT EXISTS (SELECT * FROM `user` WHERE `id` = 1); 当我在MySQL触发器中使用这句话时,我得到一个错误提示,无法创建触发器 错误代码:1064 您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以了

我可以使用INSERT INTO WHERE NOT EXISTS in MySQL触发器来避免插入重复记录,例如-

INSERT INTO `user` (`id`, `name`) VALUES (1, 'John') WHERE NOT EXISTS (SELECT * FROM `user` WHERE `id` = 1);
当我在MySQL触发器中使用这句话时,我得到一个错误提示,无法创建触发器

错误代码:1064 您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以了解在第6行“WHERE NOT EXISTS SELECT*FROM user WHERE id=1”附近使用的正确语法,您可以使用忽略:

如果行已存在,则不会插入或抛出错误

您必须知道它基于表的键,才能知道它是否重复。

您可以使用“忽略”:

如果行已存在,则不会插入或抛出错误

您必须知道它基于表的键,才能知道它是否重复。

试试这个

在'user``id`、`name'中插入` 从不存在的dual中选择1,从'user'中选择1,其中'id`=1

在'user``id`、`name'中插入`
从不存在的dual中选择1,'John'从'user'中选择1,其中'id`=1

非常感谢!它完美地解决了我的问题。非常感谢!它完美地解决了我的问题。非常感谢!这也是解决我问题的好方法。非常感谢!这也是解决我问题的好办法。
INSERT IGNORE `user` (`id`, `name`) VALUES (1, 'John')