VorwortDie 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 inDas 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-UpdateDas 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 durchDas 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 vorhandenDas 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ügenDie 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; ZusammenfassenDies 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:
|
<<: Eine Analyse von Div+Float, einem sehr wichtigen Konzept im Website-Design
>>: Der Ansichtsbereich im Meta-Tag steuert das Gerätebildschirm-CSS
1. Geben Sie das Verzeichnis ein, in dem Ihr Proj...
Dieser Artikel stellt hauptsächlich den Prozess d...
Inhaltsverzeichnis Klassisches Beispiel für einen...
Fragen-Leitfaden 1. Wie toleriert Hadoop 3.x Fehl...
Betriebssystem: Windows 10 MySQL-Version: 8.0.13-...
1. Jede Funktion ist ein Objekt und belegt Speich...
【Frage】 Wenn die äußere und die innere Tabelle ve...
Geschrieben am Anfang Ich erinnere mich, dass ich...
Manchmal möchten wir einen Befehl in einem Contai...
System: CentOS 7 RPM-Pakete: mysql-community-clie...
Inhaltsverzeichnis 1. Datenmanipulationssprache (...
Gängige Methoden zur Begrenzung der Eingabe 1. Um ...
Inhaltsverzeichnis 1. Einleitung 2. Einführung in...
Bei der Arbeit benötigen wir häufig Remote-Server...
Inhaltsverzeichnis 1. Vorbereitung 1. Bereiten Si...