MySQL-Batch-Einfügeproblem Da bei der Entwicklung eines Projekts einige grundlegende Daten des alten Systems im Voraus importiert werden mussten, habe ich während des Imports einen Batch-Importvorgang durchgeführt. Da die zulässige SQL-Anweisungsgröße in MySQL jedoch begrenzt ist, kann ich sie immer noch nicht einfügen, obwohl ich jedes Mal nur 500 stapeln kann. Zu diesem Zeitpunkt meldet der Code den folgenden Fehler:
Anhand des Fehlerberichts können wir schnell erkennen, dass das Datenpaket der SQL-Anweisung zu groß ist. Um dieses Problem zu lösen, können wir den MySQL-Serverparameter max_allowed_packet festlegen. Lösung 1. Fügen Sie den Parameter max_allowed_packet unter [mysqld] hinzu und stellen Sie ihn so groß wie möglich ein. #Suchen Sie die Datei my.cnf#woist my.cnf #vim meine.cnf ---------------------------- [mysqld] max_Verbindungen = 3000 max_allowed_package=1024M #Speichern und starten Sie den MySQL-Dienst neu, damit die Änderungen wirksam werden#service mysqld restart 2. Setzen Sie max_allowed_packet vorübergehend und setzen Sie es über die Anweisung myslq>globales max_allowed_packet festlegen = 1024*1024*1024 Nach einem Neustart auf diese Weise wird max_allowed_packet ungültig Standardmäßig beträgt der MySQL-Parameterwert max_allowed_packet 1M. Der MySQL-Index unterscheidet nicht zwischen Groß- und Kleinschreibung Beim Erstellen eines Index in einer MySQL-Datenbank wird standardmäßig die Groß- und Kleinschreibung nicht beachtet. Beispielsweise die folgende Anweisung: CREATE TABLE `Standort` ( `id` int(11) NICHT NULL AUTO_INCREMENT, `rc` varchar(2) STANDARD NULL KOMMENTAR 'R/C', `location_code` varchar(4) DEFAULT NULL COMMENT 'Standortcode', `location_name` varchar(30) DEFAULT NULL COMMENT 'Standortname', `zip_code` varchar(6) DEFAULT NULL COMMENT 'Postleitzahl', `Adresse` varchar(50) DEFAULT NULL KOMMENTAR 'Adresse', `link_man` varchar(15) DEFAULT NULL COMMENT 'Ansprechpartner', `link_phone` varchar(30) DEFAULT NULL COMMENT 'Kontakttelefonnummer', `fax` varchar(30) DEFAULT NULL KOMMENTAR 'Fax', `can_accept_car_time` varchar(40) DEFAULT NULL COMMENT 'Verfügbare Abholzeit für das Auto', `Typ` varchar(1) DEFAULT NULL COMMENT 'Kategorie', `maintenance_type` varchar(1) DEFAULT NULL COMMENT 'Wartungstyp', `Marke` varchar(4) DEFAULT NULL COMMENT 'Marke', `Reservierung` varchar(40) DEFAULT NULL COMMENT 'Reservierung', `aktivieren` int(1) DEFAULT '1', `msg_code` varchar(64) NOT NULL COMMENT 'Nachrichtencode', `receive_on` Zeitstempel NICHT NULL STANDARD CURRENT_TIMESTAMP KOMMENTAR 'Empfangsdatum', `create_on` Zeitstempel NICHT NULL STANDARD CURRENT_TIMESTAMP KOMMENTAR 'Erstellungsdatum', `modified_on` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Änderungsdatum', Primärschlüssel (`id`), EINZIGARTIGER SCHLÜSSEL `unique_msg_code` (`msg_code`) MIT BTREE, EINZIGARTIGER SCHLÜSSEL `unique_location_code` (`location_code`) MIT BTREE ) ENGINE=InnoDB AUTO_INCREMENT=16325 DEFAULT CHARSET=utf8 COMMENT='Adresstabelle'; Aber als ich die Adresscodes H12C bzw. h12C eingab, wurde ein Fehler gemeldet und eine Ausnahme ausgelöst: Doppelter Eintrag „H12C“ für Schlüssel „normal_localtion_code“, was bedeutet, dass die Groß-/Kleinschreibung nicht beachtet wird. Dieses Problem muss also gelöst werden. Problemumgehung 1. Setzen Sie das Feld auf „Binär“, damit der Index zwischen Groß- und Kleinschreibung unterscheiden kann. CREATE TABLE `Standort` ( `id` int(11) NICHT NULL AUTO_INCREMENT, `rc` char(2) STANDARD NULL KOMMENTAR 'R/C', `location_code` varchar(4) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT 'Standortcode', `location_name` varchar(26) DEFAULT NULL COMMENT 'Standortname', `zip_code` varchar(6) DEFAULT NULL COMMENT 'Postleitzahl', `Adresse` varchar(50) DEFAULT NULL KOMMENTAR 'Adresse', `link_man` varchar(16) DEFAULT NULL COMMENT 'Ansprechpartner', `link_phone` varchar(30) DEFAULT NULL COMMENT 'Kontakttelefonnummer', `fax` varchar(30) DEFAULT NULL KOMMENTAR 'Fax', `can_accept_car_time` varchar(40) DEFAULT NULL COMMENT 'Verfügbare Abholzeit für das Auto', `Typ` varchar(1) DEFAULT NULL COMMENT 'Kategorie', `maintenance_type` varchar(1) DEFAULT NULL COMMENT 'Wartungstyp', `Marke` varchar(4) DEFAULT NULL COMMENT 'Marke', `Reservierung` varchar(40) DEFAULT NULL COMMENT 'Reservierung', `aktivieren` int(1) DEFAULT '1', `msg_code` varchar(64) NOT NULL COMMENT 'Nachrichtencode', `receive_on` Zeitstempel NICHT NULL STANDARD CURRENT_TIMESTAMP KOMMENTAR 'Empfangsdatum', `create_on` Zeitstempel NICHT NULL STANDARD CURRENT_TIMESTAMP KOMMENTAR 'Erstellungsdatum', `modified_on` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Änderungsdatum', Primärschlüssel (`id`), EINZIGARTIGER SCHLÜSSEL `unique_msg_code` (`msg_code`) MIT BTREE, EINZIGARTIGER SCHLÜSSEL `unique_location_code` (`location_code`) MIT BTREE ) ENGINE=InnoDB AUTO_INCREMENT=4092 DEFAULT CHARSET=utf8 COMMENT='Standorttabelle'; //Ändern Sie die ursprünglichen Tabellenwörterbuchattribute: ALTER TABLE `Standort` SPALTE `location_code` `location_code` ÄNDERN VARCHAR(4) ZEICHENSATZ 'utf8' BINÄR NICHT NULL STANDARD ''; Die obige Methode löst das Problem. Bei der Abfrage wird die Groß-/Kleinschreibung nicht beachtet. Problemumgehung 1. Binärdatei zur Abfrageanweisung hinzufügen 2. Setzen Sie das Feldattribut im Einklang mit der Indexlösung auf „binär“. Zusammenfassen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Das könnte Sie auch interessieren:
|
<<: Detaillierte Erläuterung der Implementierungsprinzipien von call, apply und bind in JavaScript
Tutorial zur Verwendung von NPX Heute Abend, als ...
Verwenden Sie Docker, um eine flexible Online-PHP...
Ziel: Erstelle ein Quadrat, dessen Seitenlänge gl...
Inhaltsverzeichnis Einführung Traditionelle Überg...
Inhaltsverzeichnis 1. Haken anzeigen 1. Was bei d...
Hallo zusammen, ich bin Liang Xu. Bei der Verwend...
Inhaltsverzeichnis Kurzbeschreibung: 1. Vier Merk...
In diesem Artikelbeispiel wird der spezifische Co...
Bei unserer täglichen Arbeit führen wir manchmal ...
Inhaltsverzeichnis Erstellen Sie ein Vue + TS-Pro...
Busybox: Ein Schweizer Taschenmesser voller klein...
Detaillierte Erklärung und Beispiele zur Passwort...
Inhaltsverzeichnis 1. Einfach zu lesender Code 1....
1. Erstellen Sie zuerst die Datei (wechseln Sie p...
1. Laden Sie das MySQL-Installationspaket herunte...