文章参考自

window系统参考:http://blog.sina.com.cn/s/blog_46f7bb6d0102vde3.html

linux 参考:http://www.linuxeye.com/database/2909.html

背景

公司的数据库规范是,每个字段必须not null 且 必须有默认值

问题

设置为test类型后,字段不能设置默认值

解决(不建议取消)

取消数据库的严格模式

*********windows下**********

1、 找到mysql安装根目录下的my.ini文件

2、 找到这样一行:

sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

3、 在其前面加‘#’将其注释掉:

#sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

4、 重启mysql服务

5、 重新执行你的mysql语句
*************linux下*************

方法一、

1)修改my.cnf1、设置启动参数,将默认sql_mode改为宽松模式使用命令:

echo "sql-mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" >> /etc/my.cnf
或手动修改:
vi /etc/my.cnf
找到sql-mode关键字,若没有,在文件尾添加一行
替换成:
sql-mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTIO
2)重启mysql
service mysqld restart

方法二、修改启动脚本

1)设置启动脚本参数 使用命令:

sed -i "s#\"\$\*\"#--sql-mode=\"NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION\"#" /etc/init.d/mysqld

或手动修改: vi /etc/init.d/mysqld 找到 other_args="$*"

改成 other_args="--sql-mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

2)重启mysql
service mysqld restart

原因

1、 MYSQL5.x是不允许BLOB/TEXT类型的字段拥有默认值的。

2、 由于MYSQL是在‘strict mode’严格模式下工作的,如果改为非严格模式,即可

3、 MYSQL5.x在windows下是默认以‘strict mode’工作的,当执行上面的语句时,会给你一个错误或者警告信息

但是严格模式为什么不能设置默认值的真正原因还不知道

拓展

1、何为严格模式  http://koda.iteye.com/blog/288882

I. Strict Mode阐述 
根据 mysql5.0以上版本 strict mode (STRICT_TRANS_TABLES) 的限制: 
1).不支持对not null字段插入null值 
2).不支持对自增长字段插入''值,可插入null值 
3).不支持 text 字段有默认值

最新文章

  1. Machine Learning Algorithms Study Notes(6)—遗忘的数学知识
  2. Hibernate save, saveOrUpdate, persist, merge, update 区别
  3. codeforces 446C DZY Loves Fibonacci Numbers 线段树
  4. WAMPServer 默认安装启动后,图标显示橙黄色
  5. coolpro2 剪切并淡出
  6. MySQL配置
  7. Leetcode | N-Queens I & II
  8. mysql安装/启动报错汇总
  9. 最近工作用到的sql脚本
  10. Linux基本配置和管理 2 ---- Linux多命令协作----管道及重定向
  11. RuntimePermissions
  12. 在iOS上增加手势锁屏、解锁功能
  13. ant_0105
  14. HTTP笔记
  15. pdf文件之itextpdf插入html内容以及中文解决方案
  16. JS数组去重的十种方法
  17. android emulator启动的两种方法详解
  18. Ansible-----条件判断与错误处理
  19. 堆排序 P1090 合并果子
  20. NET(C#)接入Dubbo服务,Zookeeper作为Dubbo服务的注册中心,实现thrift协议访问接口(3)

热门文章

  1. c# 后台拼接分页Html
  2. vb.net Function使用
  3. vi命令详解2
  4. Sample Means(耶鲁大学教材)
  5. Java集合之LinkedHashMap源码分析
  6. (二)在实战中使用Sass和Compass
  7. 如何判断页面是pc端还是移动端,进入不同的页面
  8. Csharp: read Sybase SQL anywhere5.5 using c#
  9. 使用Topshelf创建自宿主的Windows服务程序
  10. Fiddler抓包使用教程-QuickExec