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