MySQL的SQL_Mode修改小计

今天突然发现MySQL服务器的sql_mode是默认的模式,危害如下:

解决:set global sql_mode='strict_trans_tables'(阿里服务器默认是:strict_trans_tables

  • SQL Model:定义MySQL对约束的响应行为:
    • 全局修改:需要有权限,并且不会立即生效,对以后新建的会话生效(从全局继承的)
      • mysql> set global sql_mode='xx_mode'
      • mysql> set @@global.sql_mode='xx_mode'
    • 会话修改:
      • mysql> set [session] sql_model='xx_mode'
      • mysql> set @@session.sql_mode='xx_mode'
    • 常用mode:(阿里服务器默认是:strict_trans_tables
      • traditional:使用传统模型,不允许对非法值做插入操作
      • strict_trans_tables:对所有支持事物类型的表做严格约束
      • strict_all_tables:对所有表做严格约束
      • 查询当前设置:select @@sql_mode

猜你喜欢

转载自www.cnblogs.com/dotnetcrazy/p/10374091.html
今日推荐