„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann MySQL Daten abschneiden, anstatt beim Einfügen einen Fehler auszulösen?

Wie kann MySQL Daten abschneiden, anstatt beim Einfügen einen Fehler auszulösen?

Veröffentlicht am 18.11.2024
Durchsuche:830

How to Make MySQL Truncate Data Instead of Raising an Error on Insert?

MySQL-Einfügeverhalten: Kürzung vs. Fehler

MySQL zeigt unterschiedliche Verhaltensweisen beim Versuch, Daten einzufügen, die die Spaltenlängenbeschränkung überschreiten: Kürzung oder Fehler . In diesem Szenario wollen wir eine MySQL-Instanz ändern, um Daten abzuschneiden, anstatt einen Fehler auszulösen.

Lösung: Deaktivieren Sie STRICT_TRANS_TABLES und STRICT_ALL_TABLES

Standardmäßig erzwingt MySQL streng Modus, der die Einstellungen STRICT_TRANS_TABLES und STRICT_ALL_TABLES umfasst. Diese Einstellungen verhindern ungültige oder fehlende Werte bei Datenänderungsvorgängen wie INSERT oder UPDATE.

Um das automatische Abschneiden eingefügter Zeichenfolgen zu ermöglichen, können wir STRICT_TRANS_TABLES und STRICT_ALL_TABLES deaktivieren. So geht's:

SET SESSION sql_mode=NO_STRICT_TRANS_TABLES,NO_STRICT_ALL_TABLES;

Erläuterung:

Durch die Deaktivierung dieser Einstellungen entfernen wir die Beschränkung auf ungültige oder fehlende Werte. Dies ermöglicht es MySQL, Daten, die die Spaltenlängenbeschränkung überschreiten, stillschweigend zu kürzen und dabei das Standardverhalten der Kürzung einzuhalten.

Referenz:

MySQL Server SQL-Modi: https:/ /dev.mysql.com/doc/refman/8.0/en/sql-mode.html

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3