MySQL: Ignorieren einfügen, doppelte Daten werden automatisch ignoriert

Wenn beim Einfügen von Daten in MySQL die eingefügten Daten bereits in der Tabelle vorhanden sind (der Primärschlüssel oder der eindeutige Schlüssel bereits vorhanden ist), verwenden Sie die Insert-Ignorier-Syntax, um das Einfügen doppelter Daten zu ignorieren.

1. Fügen Sie die Ignoriersyntax ein

insert ignore into table_name values

Wenn beim Einfügen von Daten mithilfe der Syntax „Einfügen ignorieren“ ein Primärschlüssel- oder eindeutiger Schlüsselkonflikt auftritt, werden die eingefügten Daten ignoriert.

Erfüllen Sie eine der folgenden Bedingungen:

Primärschlüssel duplizieren.
Eindeutigen Schlüssel duplizieren
. 2. Groß-/Kleinschreibung einfügen.
Sehen Sie sich zunächst eine Tabelle, Tabellenname, Primärschlüssel-ID und einen eindeutigen Schlüsselnamen an. Die spezifische Tabellenstruktur und die Daten in der Tabelle lauten wie folgt:

 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 Primärschlüsselkonflikt
Fügen Sie einen Datensatz mit der ID 1 ein. Wenn „Ignorieren“ nicht hinzugefügt wird, wird ein Primärschlüsselkonfliktfehler wie folgt gemeldet:

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

Nach dem Hinzufügen von „Ignorieren“ wird kein Fehler gemeldet, es wird jedoch eine Warnung wie folgt angezeigt:

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|
+———+——+—————————————+

Fragen Sie die Tabelle ab und stellen Sie fest, dass die eingefügten Daten ignoriert wurden.

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

2.2 Konflikte mit eindeutigen Schlüsseln
Ebenso wird das Einfügen von Daten mit Konflikten mit eindeutigen Schlüsseln ebenfalls ignoriert, wie unten gezeigt:

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)

Wenn die Geschäftslogik doppelte Daten beim Einfügen automatisch ignorieren muss, können Sie es auch mit der MySQL-Funktion zum Ignorieren von Einfügungen versuchen.

Supongo que te gusta

Origin blog.csdn.net/qq_41848006/article/details/128274196
Recomendado
Clasificación