MySQL inserta la inserción de datos ignorada, los datos duplicados se ignoran automáticamente

Al insertar datos en MySQL, si los datos insertados ya existen en la tabla (la clave principal o la clave única ya existen), use la sintaxis de ignorar inserción para ignorar la inserción de datos duplicados.

1. insertar ignorar sintaxis

insert ignore into table_name values…

Cuando se utiliza la sintaxis de insertar omitir para insertar datos, si se produce un conflicto de clave principal o de clave única, se ignorarán los datos insertados.

Se cumple una de las siguientes condiciones:

  • clave principal duplicada
  • Clave única duplicada

2. Insertar caso de ignorar

Primero mire una tabla, el nombre de la tabla table_name, la identificación de la clave principal, el nombre de la clave única, la estructura específica de la tabla y los datos en la tabla son los siguientes:

 CREATE TABLE table_name(
  id int(11) NOT NULL,
  name varchar(50) DEFAULT NULL,
  age int(11) DEFAULT NULL,
  PRIMARY KEY (id),
  UNIQUE KEY uk_name (name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
mysql> select * from table_name;
+----+------+------+
| id | name | age  |
+----+------+------+
|  1 | Tom  |   20 |
+----+------+------+

2.1 Conflicto de clave principal

Inserte un registro con una identificación de 1. Si no se agrega ignorar, se informará un error de conflicto de clave principal, de la siguiente manera:

mysql> insert into table_name values(1,’Bill’, 21);
ERROR 1062 (23000): Duplicate entry ‘1for keyPRIMARY

Después de agregar ignorar, no se informará ningún error, pero hay una advertencia de advertencia, de la siguiente manera:

mysql> insert ignore into table_name values(1,’Bill’, 21);
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> show warnings;
+———+——+—————————————+
| Level   | Code | Message                               |
+———+——+—————————————+
| Warning | 1062 | Duplicate entry ‘1for keyPRIMARY|
+———+——+—————————————+

Consulte la tabla y descubra que los datos insertados se ignoran.

mysql> select * from table_name;
+-+——+——+
| id | name | age  |
+-+——+——+
|  1 | Tom  |   20 |
+-+——+——+

2.2 Conflictos de clave única

Asimismo, se ignora la inserción de datos con infracciones de clave única, de la siguiente manera:

mysql> insert into table_name values(2,’Tom’,21);
ERROR 1062 (23000): Duplicate entry ‘Tom’ for key ‘uk_name’

mysql> insert ignore into table_name values(2,’Tom’,21);
Query OK, 0 rows affected, 1 warning (0.00 sec)

Si la lógica empresarial necesita ignorar automáticamente al insertar datos duplicados, pruebe la función de ignorar inserción de MySQL.

Supongo que te gusta

Origin blog.csdn.net/doublepg13/article/details/128237992
Recomendado
Clasificación