MySQL 插入行為:截斷與錯誤
MySQL 在嘗試插入超過列長度限制的資料時表現出不同的行為:截斷或錯誤。在這種情況下,我們的目標是修改 MySQL 實例以截斷資料而不是引發錯誤。
解決方案:停用 STRICT_TRANS_TABLES 和 STRICT_ALL_TABLES
預設情況下,MySQL 強制執行嚴格的模式,其中包含設定 STRICT_TRANS_TATABLES 和 STR_ICTTAALLTABLES。這些設定禁止在 INSERT 或 UPDATE 等資料變更作業中出現無效或缺失值。
為了允許自動截斷插入的字串,我們可以停用 STRICT_TRANS_TABLES 和 STRICT_ALL_TABLES。操作方法如下:
<code class="sql">SET SESSION sql_mode=NO_STRICT_TRANS_TABLES,NO_STRICT_ALL_TABLES;</code>
說明:
透過停用這些設置,我們刪除了對無效或缺失值的限制。這允許 MySQL 以靜默方式截斷超過列長度限制的數據,遵循截斷的預設行為。
參考:
MySQL Server SQL 模式:https:// /dev.mysql.com/doc/refman/8.0/en/sql-mode.html
以上是如何讓 MySQL 截斷資料而不是在插入時引發錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!