我有两个MySQL实例。当数据太长时,第一个会在插入时截断字符串。第二个引发错误:
ERROR 1406 (22001): Data too long for column 'xxx' at row 1
我希望第二个也截断数据。是否有任何MySQL设置来管理此行为?
您可以禁用STRICT_TRANS_TABLES和STRICT_ALL_TABLES。这样可以自动截断插入的字符串。
STRICT_TRANS_TABLES
STRICT_ALL_TABLES
引用来自MySQL Documantation。
严格模式控制MySQL如何处理数据更改语句(例如INSERT或UPDATE)中的无效或缺失值。值可能由于多种原因而无效。例如,它可能具有错误的列数据类型,或者可能超出范围。当要插入的新行不包含其定义中没有显式DEFAULT子句的非NULL列的值时,缺少值。(对于NULL列,如果缺少该值,则插入NULL。)
参考:MySQL Server SQL模式