当前位置: 首页 > 编程笔记 >

如果表中插入重复值,则忽略MySQL INSERT IGNORE语句并显示错误

董昕
2023-03-14
本文向大家介绍如果表中插入重复值,则忽略MySQL INSERT IGNORE语句并显示错误,包括了如果表中插入重复值,则忽略MySQL INSERT IGNORE语句并显示错误的使用技巧和注意事项,需要的朋友参考一下

让我们首先创建一个表-

mysql> create table DemoTable
(
   FirstName varchar(100)
);

如官方MySQL文档中 ,“如果没有IGNORE,重复表中现有UNIQUE索引或PRIMARY KEY值的行将导致重复键错误,并且该语句将中止”。

因此,让我们现在添加一个唯一索引-

mysql> alter table DemoTable add unique index(FirstName);
Records: 0 Duplicates: 0 Warnings: 0

使用insert命令在表中插入一些记录。如您所见,由于我们尚未使用INSERT IGNORE,因此在插入重复记录时会看到错误-

mysql> insert into DemoTable values('Chris');
mysql> insert into DemoTable values('Robert');
mysql> insert into DemoTable values('David');
mysql> insert into DemoTable values('Robert');
ERROR 1062 (23000): Duplicate entry 'Robert' for key 'FirstName'
mysql> insert into DemoTable values('Chris');
ERROR 1062 (23000): Duplicate entry 'Chris' for key 'FirstName'
mysql> insert into DemoTable values('Sam');

使用select语句显示表中的所有记录-

mysql> select *from DemoTable;

这将产生以下输出-

+-----------+
| FirstName |
+-----------+
| Chris     |
| David     |
| Robert    |
| Sam       |
+-----------+
4 rows in set (0.00 sec)
 类似资料:
  • 问题内容: 我正在使用PHP。 请问什么是将新记录插入具有唯一字段的数据库的正确方法。我正在批量插入很多记录,我只想插入新记录,并且我不想重复条目有任何错误。 有没有唯一方法可以首先进行SELECT并查看条目是否在INSERT之前已经存在-并且仅在SELECT不返回任何记录时才插入INSERT?我希望不是。 我想以某种方式告诉MySQL忽略这些插入而没有任何错误。 谢谢 问题答案: 如果在重复记录

  • 在Java(Eclipse)中,当有一个语句,如时,它最终会为true,但问题是,如果第一个语句为真,编译器会评估第二个语句吗?这对我来说很重要,因为如果变量为 null 或具有某个值,我需要执行一个操作。我的语句看起来像

  • 本文向大家介绍system.reactive 忽略重复值,包括了system.reactive 忽略重复值的使用技巧和注意事项,需要的朋友参考一下 示例 有两个用于过滤重复项的运算符: 您还可以传递谓词:            

  • 我想插入一批文档,其中一些已经存在于集合中。所以我想要的是忽略它们,或者对我来说更好的解决方案是在例外情况下,我想记录哪个文档是重复的,如果可能的话,继续插入下一个文档。 我看到了几个类似的问题,但没有一个解决了这个问题。 我的代码如下所示: 任何帮助都将不胜感激。

  • 我是数据库领域的初学者,我的任务是编写一个在嵌套表中添加记录的过程,这是。我写的sql文件: 当我跑步的时候。sql文件我收到一条警告消息(使用编译错误创建的过程)当我运行时(显示错误过程TT1_ajute_PERSON_DANS_ALBUM;)我得到错误(忽略语句)和(缺少表达式) 我已经在谷歌上搜索过这个问题,大多数情况下都是因为打字错误,但我不认为这是我的情况!以下是表(TT1_相册)和(T

  • 如果值为空,则需要在单元格中显示一个不间断的空格。这是我的模板: 我试过这个,但不管用: 它返回值的问题是: 如果许可证号带有值,则单元格为空,行颜色如下所示。 利用卢库马的建议,它表明了这一点: 更改筛选器中的if语句后,仍然不显示非值: