mysql 之 sql_mode

sql_mode 之影响:

  1.  sql_mode=’ansi’; 则当插入时,如果数据超长,则截断插入;有时候,这不是我们想要的

总结:

  • sql_mode=’TRADITIONAL’; 可以避免很多不必要的意外;

    TRADITIONAL 等价于 下面一系列标准的集合
  • 注意: 与innodb_strict_mode的区别

实际应用:

  1. 可以直接在 /etc/my.cnf 中修改sql_mode,如下:(需要重启mysql)
  2. 如果不方便重启mysql,则可以在执行sql语句前进行回话级别的设置,如下:

    (每次连接后都需要执行,比较麻烦;对于长连接的场景,该设置的花费可以忽略)
  3. 设置全局sql_mode:

    注意:
    1) 需要有超级权限
    2) 对当前session无效;要么退出再进来,要么再设置一下当前回话的sql_mode
    3)  该设置重启mysqld就没了,最好在my.cnf 中写一下

参考资料:

留下评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据