MySQL之Field‘***’doesn’t have a default value错误解决办法
今天,中国博客联盟有博友反馈,zgboke.com无法提交博客,当时我正好准备去假日广场聚会,就匆匆忙忙的提交试了下,发现提交博客的时候确实报如下错误:
提示web_pic不能为空值。很纳闷,之前都可以成功提交的,为什么突然不行了?看了下网上的案例,说是需要修改MySQL的配置什么的,但是目前博客联盟是挂在京东云擎的,数据库不能修改配置,按理说之前可以正常提交,后面应该也可以才对啊!
由于聚会时间快到了,就先放在一边了。回到家之后,对比了下网上的类似案例,原来是web_pic这个键值设置了不为空导致的,也就是在创建表的时候,使用了not null属性。于是进入mywebsql,登入京东云擎数据库,进行了如下操作:
提交后,发现可以成功提交了!出现这个错误的愿意,应该是我最近导入导出数据库太频繁,create tables语句出现错误导致的。
下面,整理一下网上的相同问题的其他解决办法,方便出现问题的同学参考:
1、打开my.ini,查找
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
修改为
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
然后重启MYSQL
2、MySQL 5 uses a strict mode which needs to be disabled.
In Windows, Goto Start-->Programs-->MySQL->MySQL Instance Config Wizard. Follow through the Reconfigure Instance option-->Detailed Configuration-->Continue Next a few screens. At the bottom under Enable TCP/IP option there is 'Enable Strict Mode'. Deslect this option (no tick). Save changes and MySQL will restart.
3、看看你的数据库定义的时候是不是把主键生成方式设置为int的,但是没有设置为自增的!!或者数据定义的时候设置一个默认值就可以了。
相关推荐
-
深入理解mysql之left join 使用详解
ON 子句与 WHERE 子句的不同 一种更好地理解带有 WHERE ... IS NULL 子句的复杂匹配条件的简单方法 Matching-Conditions 与 Where-conditions 的不同 关于 "A LEFT JOIN B ON 条件表达式" 的一点提醒 ON 条件("A LEFT JOIN B ON 条件表达式"中的ON)用来决定如何从 B 表中检索数据行. 如果 B 表中没有任何一行数据匹配 ON 的条件,将会额外生成一行所有列
-
在EF中使用MySQL的方法及常见问题
有时需要在网上租用空间或数据库,Mysql成本低一些,所以想将sql server转成mysql-- 注意:在安装Mysql时要选择文字集为utf8,否则将不能使用中文(当前也可以在创建数据库时使用utf8,不过我不知道在ef生成数据库时如何设置,希望高手指点) 一.在项目中引用mysql的EF包 通过NuGet包管理器安装:EntityFramework6.1.3.MySql.Data.Entity6.9.8 也可以用nuget的命令行加入: Install-Package MySql.Dat
-
MySQL 5.6 中的 TIMESTAMP 和 explicit_defaults_for_timestamp 参数
安装MySQL时,有warning: [root@localhost mysql]# scripts/mysql_install_db --user=mysql Installing MySQL system tables...2015-08-13 14:20:09 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server
-
mysql_connect(): Connection using old (pre-4.1.1) authentication protocol refused
做了一下mysql升级,开发机上mysql升级到5.6版本,结果连接一些低版本的mysql服务器报出如下异常:Warning: mysql_connect(): Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled) 异常原因在于服务器端的密码管理协议陈旧,使用的是旧有的用户密码格式存储:但是客户端升级之后采用了新的密码格式.mysql5.6版本遇
-
IIS下PHP连接数据库提示mysql undefined function mysql_connect()
一. 将PHP.ini中以下几个参数前面的";"去掉: 复制代码 代码如下: ;extension=php_dba.dll ;extension=php_gd2.dll ;extension=php_mbstring.dll ;extension=php_mcrypt.dll ;extension=php_mysql.dll ;extension=php_mysqli.dll ;extension=php_pdo.dll ;extension=php_pdo_mysql.dll 保存文
-
mysql not in、left join、IS NULL、NOT EXISTS 效率问题记录
NOT IN.JOIN.IS NULL.NOT EXISTS效率对比 语句一:select count(*) from A where A.a not in (select a from B) 语句二:select count(*) from A left join B on A.a = B.a where B.a is null 语句三:select count(*) from A where not exists (select a from B where A.a = B.a) 知道以上三
-
MYSQL无法启动提示: Default storage engine (InnoDB) is not available的解决方法
在my.ini(linux下/etc/my.cnf)加上skip-innodb,就可以了. 我这样设置后,在linux下都没问题,今天在我本机winXP启动MYSQL,提示启动不起来.看下mysql目录的错误日志: 引用 090613 10:15:27 [ERROR] Default storage engine (InnoDB) is not available 090613 10:15:27 [ERROR] Aborting 090613 10:15:27 [Note] C:\www\mys
-
超详细mysql left join,right join,inner join用法分析
下面是例子分析表A记录如下: aID aNum 1 a20050111 2 a20050112 3 a20050113 4 a20050114 5 a20050115 表B记录如下: bID bName 1 2006032401 2 2006032402 3 2006032403 4 20
-
MySQL Left JOIN时指定NULL列返回特定值详解
coalesce 函数可以接受多个参数,将会返回这些参数中第一个非NULL的值,若提供的参数全部为NULL,则返回NULLifnull 函数和coalesce功能一样,只是只可以接受两个参数if 函数接受三个参数,实现类似于三元判断符(?:)的功能,即第一个参数不为NULL且不为0时,返回第二个参数,否则返回第三个参数 复制代码 代码如下: SELECT a.*,coalesce(t.cous,0) as count FROM brand as a left join (select bran
-
解析mysql left( right ) join使用on与where筛选的差异
有这样的一个问题mysql查询使用mysql中left(right)join筛选条件在on与where查询出的数据是否有差异.可能只看着两个关键字看不出任何的问题.那我们使用实际的例子来说到底有没有差异. 例如存在两张表结构表结构1 复制代码 代码如下: drop table if EXISTS A; CREATE TABLE A ( ID int(1) NOT NULL, PRIMARY KEY (ID) ) ENGINE=MyISAM DEFAULT CHARSET=lat
-
MySQL 5.6 中TIMESTAMP with implicit DEFAULT value is deprecated错误
安装MySQL时,有warning: [root@localhost mysql]# scripts/mysql_install_db --user=mysql Installing MySQL system tables...2015-08-13 14:20:09 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server
随机推荐
- Android抢红包插件实现原理浅析
- 解析Python编程中的包结构
- Mybatis中 XML配置详解
- PHP扩展Memcache分布式部署方案
- 发挥语言的威力--融合PHP与ASP
- 实例讲解Python中SocketServer模块处理网络请求的用法
- JavaScript实现向setTimeout执行代码传递参数的方法
- JS实现点击复选框将按钮或文本框变为灰色不可用的方法
- Javascript必知必会(四)js类型转换
- Spring中WebDataBinder使用详解
- php版微信支付api.mch.weixin.qq.com域名解析慢原因与解决方法
- Android onClick按钮单击事件的四种常用写法
- JSONLINT:python的json数据验证库实例解析
- 详解js常用分割取字符串的方法
- Spring Cloud Gateway 服务网关快速实现解析
- redis学习之RDB、AOF与复制时对过期键的处理教程
- PHP-FPM和Nginx的通信机制详解
- spring-mvc/springboot使用MockMvc对controller进行测试
- Django中日期处理注意事项与自定义时间格式转换详解
- golang利用unsafe操作未导出变量-Pointer使用详解