Mak*_*cha 32 mysql settings varchar
我有两个MySQL实例.第一个在数据太长时截断插入的字符串.第二个引发错误:
ERROR 1406 (22001): Data too long for column 'xxx' at row 1
我希望第二个也截断数据.是否有任何MySQL设置来管理此行为?
ban*_*nsi 43
你可以禁用STRICT_TRANS_TABLES
和STRICT_ALL_TABLES
.这允许自动截断插入的字符串.
引自MySQL Documantation.
严格模式控制MySQL如何处理数据更改语句(如INSERT或UPDATE)中的无效或缺失值.由于多种原因,值可能无效.例如,列可能具有错误的数据类型,或者可能超出范围.当要插入的新行不包含其定义中没有显式DEFAULT子句的非NULL列的值时,缺少值.(对于NULL列,如果缺少值,则插入NULL.)
met*_*766 10
如果未启用严格SQL模式,并且您为CHAR或VARCHAR列分配的值超出了列的最大长度,则会截断该值以使其适合并生成警告.对于非空格字符的截断,可以导致发生错误(而不是警告),并通过使用严格的SQL模式来禁止插入值.请参见第6.1.7节"服务器SQL模式".
如何更改它:http: //dev.mysql.com/doc/refman/5.7/en/sql-mode.html
找到两种禁用严格模式的方法:
在my.cnf下面添加
SQL模式= "NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
方式是使用mysql控制台.
SET @@ global.sql_mode ='';
请在生产环境中运行之前测试它们.
归档时间: |
|
查看次数: |
33791 次 |
最近记录: |