Detaillierte Erläuterung mehrerer Beispiele für Insert- und Batch-Anweisungen in MySQL

Detaillierte Erläuterung mehrerer Beispiele für Insert- und Batch-Anweisungen in MySQL

Vorwort

Die gebräuchlichste Methode besteht darin, einen Primärschlüssel oder einen eindeutigen Index für das Feld festzulegen. Beim Einfügen doppelter Daten wird ein Fehler ausgegeben und das Programm beendet, was jedoch bei der nachfolgenden Verarbeitung zu Problemen führt. Daher ist für die Einfügeanweisung eine spezielle Verarbeitung erforderlich, um Ausnahmen so weit wie möglich zu vermeiden oder zu ignorieren. Ich werde es unten kurz vorstellen. Interessierte Freunde können es ausprobieren:

Zur Vereinfachung der Demonstration habe ich eine neue Benutzertesttabelle mit vier Feldern erstellt: ID, Benutzername, Geschlecht und Adresse. Der Primärschlüssel ist die ID (automatische Inkrementierung) und für das Feld „Benutzername“ wird ein eindeutiger Index (idx_username) festgelegt.

1.ignorieren einfügen in

Das heißt, wenn Daten eingefügt werden, wird das Einfügen ignoriert, wenn die Daten vorhanden sind. Voraussetzung ist, dass das eingefügte Datenfeld einen Primärschlüssel oder einen eindeutigen Indexsatz hat. Die Test-SQL-Anweisung lautet wie folgt. Beim Einfügen dieser Daten sucht die MySQL-Datenbank zuerst nach vorhandenen Daten (also dem Index idx_username). Wenn diese vorhanden sind, wird das Einfügen ignoriert. Wenn sie nicht vorhanden sind, werden die Daten normal eingefügt:

INSERT IGNORE INTO user (Benutzername, Geschlecht, Adresse) VALUES ('hanpang', 'Junge', 'HongKong')

2. bei doppeltem Schlüssel-Update

Das heißt, wenn Daten eingefügt werden und die Daten vorhanden sind, wird ein Aktualisierungsvorgang ausgeführt. Die Voraussetzung ist die gleiche wie oben, und das eingefügte Datenfeld wird ebenfalls mit einem Primärschlüssel oder einem eindeutigen Index festgelegt. Die Test-SQL-Anweisung lautet wie folgt. Beim Einfügen dieses Datensatzes ruft die MySQL-Datenbank zuerst die vorhandenen Daten ab (Index idx_username). Wenn sie vorhanden sind, wird ein Aktualisierungsvorgang ausgeführt. Wenn sie nicht vorhanden sind, werden sie direkt eingefügt:

INSERT IGNORE INTO user (Benutzername, Geschlecht, Adresse) VALUES ('hanpang', 'Junge', 'HongKong')
bei doppeltem Schlüssel-Update
SEX='Junge',Adresse='HongKong'

3. ersetzen durch

Das heißt, wenn Sie Daten einfügen, löschen Sie diese, wenn sie vorhanden sind, und fügen Sie sie dann ein. Die Voraussetzung ist die gleiche wie oben. Das eingefügte Datenfeld muss den Primärschlüssel oder den eindeutigen Index festlegen. Die Test-SQL-Anweisung lautet wie folgt. Beim Einfügen dieses Datensatzes ruft die MySQL-Datenbank zuerst die vorhandenen Daten ab (Index idx_username). Wenn sie vorhanden sind, löschen Sie zuerst die alten Daten und fügen Sie sie dann ein. Wenn sie nicht vorhanden sind, fügen Sie sie direkt ein:

REPLACE INTO user (Benutzername, Geschlecht, Adresse) VALUES ('hanpang', 'boy', 'HongKong')

4. einfügen, falls nicht vorhanden

Das heißt, einfügen in ... auswählen ..., wo nicht vorhanden .... Diese Methode eignet sich zum Einfügen von Datenfeldern, die keinen Primärschlüssel oder eindeutigen Index haben. Stellen Sie beim Einfügen eines Datenelements zunächst fest, ob die Daten in der MySQL-Datenbank vorhanden sind. Wenn sie nicht vorhanden sind, fügen Sie sie normal ein. Wenn sie vorhanden sind, ignorieren Sie sie:

INSERT INTO user (Benutzername, Geschlecht, Adresse) 
Wählen Sie 'Hanpang', 'Junge', 'Hongkong' vom Benutzer aus
WHERE NOT EXISTS (SELECT username FROM user WHERE username='hanpang')

5. Daten stapelweise einfügen

Die obigen Einfügeanweisungen können Batch-Einfügeanweisungen verwenden. Die Datenstruktur der Tabelle lautet:

CREATE TABLE Beispiel (
    Beispiel-ID INT NICHT NULL,
    Name VARCHAR( 50 ) NOT NULL,
    Wert VARCHAR( 50 ) NOT NULL,
    anderer_Wert VARCHAR( 50 ) NICHT NULL
)

Ich bin es gewohnt, diese Batch-Operationsmethode zum Verketten von SQL-Anweisungen zu verwenden, aber wenn Ihre Zeichenfolge zu lang ist (Millionen von Daten), müssen Sie Anweisungen für MySQL festlegen:

INSERT INTO Beispiel
WERTE
(100, 'Name 1', 'Wert 1', 'Sonstige 1'),
(101, 'Name 2', 'Wert 2', 'Sonstiges 2'),
(102, 'Name 3', 'Wert 3', 'Sonstiges 3'),
(103, ‚Name 4‘, ‚Wert 4‘, ‚Sonstiges 4‘);

Bei der tatsächlichen Entwicklung bevorzugen wir die Verwendung von Batch-Additionsvorgängen über Programmcode (unter Verwendung von Transaktionsübermittlung und Batch-Einfügung in die Datenbank). Die obige Methode eignet sich besser zum Einfügen von Testdaten oder anderen geringen Anforderungen und ist in der Tat schnell.

6. Stapelaktualisierung

(1) durch Batch-Update ersetzen (denken Sie daran, einen Primärschlüssel oder Index zu haben)

INSERT INTO Beispiel
WERTE
(100, 'Name 1', 'Wert 1', 'Sonstige 1'),
(101, 'Name 2', 'Wert 2', 'Sonstiges 2'),
(102, 'Name 3', 'Wert 3', 'Sonstiges 3'),
(103, ‚Name 4‘, ‚Wert 4‘, ‚Sonstiges 4‘);

(2) einfügen in ... bei doppeltem Schlüssel-Update Batch-Update

Bei Verwendung von INSERT gibt es eine Tabelle T (id, A, B, C, D)

Beim Einfügen möchten wir A und B zum Indizieren eindeutiger Datensätze verwenden und C und D aktualisieren, wenn Duplikate vorhanden sind.

EINFÜGEN IN T(A,B,C,D) WERTE (a,b,c,d) BEIM DUPLIZIERTEN SCHLÜSSEL-UPDATE C=C+1,D=d 

(3) Verwenden Sie die integrierten Anweisungen von MySQL, um Batch-Updates zu erstellen

AKTUALISIEREN Sie Ihre Tabelle
	SET dingdan = CASE-ID 
		WENN 1, DANN 3 
		WENN 2, DANN 4
		Wenn 3, dann 5 
		ENDE
WO id IN (1,2,3)

(4) Erstellen Sie eine temporäre Tabelle, aktualisieren Sie zuerst die temporäre Tabelle und aktualisieren Sie dann von der temporären Tabelle aus

Erstellen Sie eine temporäre Tabelle tmp(id int(4) primary key,dr varchar(50));
in temporäre Werte einfügen (0,'weg'), (1,'xx'),...(m,'yy');
Aktualisiere test_tbl, tmp setze test_tbl.dr=tmp.dr, wobei test_tbl.id=tmp.id;

Zusammenfassen

Dies ist das Ende dieses Artikels über verschiedene Arten von Insert- und Bulk-Anweisungen in MySQL. Weitere relevante MySQL-Insert- und Bulk-Anweisungsinhalte finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Beispiele für 4 Methoden zum Einfügen großer Datenmengen in MySQL
  • MySQL-Batch-Einfügungsdaten-Implementierungscode
  • Tutorial zur Implementierung von Batch-Einfügungen in MySQL zur Leistungsoptimierung
  • So vermeiden Sie MySQL-Batch-Einfügungen mit eindeutigen Indizes
  • MySQL-Batch-Einfügen von Datenskript
  • Detaillierte Erläuterung der Leistungsoptimierung für MySQL-Batch-SQL-Einfügungen
  • Lösungen für MySQL-Batch-Insert- und eindeutige Indexprobleme
  • So fügen Sie schnell 10 Millionen Datensätze in MySQL ein

<<:  Eine Analyse von Div+Float, einem sehr wichtigen Konzept im Website-Design

>>:  Der Ansichtsbereich im Meta-Tag steuert das Gerätebildschirm-CSS

Artikel empfehlen

So führen Sie ein Projekt mit Docker aus

1. Geben Sie das Verzeichnis ein, in dem Ihr Proj...

Diagramm des Prozesses zur Implementierung eines Richtungsproxys durch Nginx

Dieser Artikel stellt hauptsächlich den Prozess d...

Klassischer Beispielcode für JavaScript-Funktionsaufrufe

Inhaltsverzeichnis Klassisches Beispiel für einen...

Hadoop 2.x vs. 3.x 22-Punkte-Vergleich, Hadoop 3.x Verbesserungen gegenüber 2.x

Fragen-Leitfaden 1. Wie toleriert Hadoop 3.x Fehl...

Detaillierte Erklärung der JS-Ereignisdelegation

1. Jede Funktion ist ein Objekt und belegt Speich...

Lösungen für das Problem der Tabellenschachtelung und Rahmenzusammenführung

【Frage】 Wenn die äußere und die innere Tabelle ve...

Eine Screenshot-Demo basierend auf Canvas in HTML

Geschrieben am Anfang Ich erinnere mich, dass ich...

Docker führt einen Befehl in einem Container außerhalb des Containers aus

Manchmal möchten wir einen Befehl in einem Contai...

Tutorial zur Installation von MySQL 5.7.18 mit einem RPM-Paket

System: CentOS 7 RPM-Pakete: mysql-community-clie...

Was bedeutet Eingabetyp und wie kann die Eingabe begrenzt werden?

Gängige Methoden zur Begrenzung der Eingabe 1. Um ...

Einführung und Installation von vue-cli

Inhaltsverzeichnis 1. Einleitung 2. Einführung in...