设置sql_mode无效果

dahuatttt 2013-12-21 11:36:57
SELECT @@SQL_MODE, @@GLOBAL.SQL_MODE;
得到如下结果:
@@SQL_MODE, @@GLOBAL.SQL_MODE
'STRICT_ALL_TABLES', 'STRICT_ALL_TABLES,NO_ENGINE_SUBSTITUTION'

向自己的表里某个varchar(13)字段插入一大段文字,insert操作依然成功,文字被截断。strict模式下应该插入失败才对啊!
...全文
561 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dahuatttt 2013-12-21
  • 打赏
  • 举报
回复
引用 1 楼 rucypli 的回复:
设置以后退出重新登录
官人,还是不行呀!
rucypli 2013-12-21
  • 打赏
  • 举报
回复
设置以后退出重新登录
dahuatttt 2013-12-21
  • 打赏
  • 举报
回复
引用 3 楼 rucypli 的回复:
set global sql_mode='STRICT_TRANS_TABLES'; 然后重开session试试
谢过大官人~ 终于找到原因了!!!转一下:
引用
If you are not using strict mode (that is, neither STRICT_TRANS_TABLES nor STRICT_ALL_TABLES is enabled), MySQL inserts adjusted values for invalid or missing values and produces warnings. In strict mode, you can produce this behavior by using INSERT IGNORE or UPDATE IGNORE.
我刚好用的就是insert ignore,本来是为了避免键重复的,结果和strict mode也有关联!
rucypli 2013-12-21
  • 打赏
  • 举报
回复
set global sql_mode='STRICT_TRANS_TABLES'; 然后重开session试试

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧