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 strikt 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:
<code class="sql">SET SESSION sql_mode=NO_STRICT_TRANS_TABLES,NO_STRICT_ALL_TABLES;</code>
Erklärung:
Durch die Deaktivierung dieser Einstellungen heben wir die Beschränkung auf ungültige oder fehlende Werte auf. Dadurch kann MySQL Daten, die die Spaltenlängenbeschränkung überschreiten, stillschweigend kürzen und dabei das Standardverhalten der Kürzung einhalten.
Referenz:
MySQL Server SQL-Modi: https:/ /dev.mysql.com/doc/refman/8.0/en/sql-mode.html
Das obige ist der detaillierte Inhalt vonWie kann MySQL Daten abschneiden, anstatt beim Einfügen einen Fehler auszulösen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!