一.问题描述 在往数据库写入数据的时候,报错: '字段名' doesn't have a default value 本来这个错误是经常见到的,无非就是字段没有设置默认值造成的.奇怪的是,我这边报错的字段,其类型是text类型.众所周知的,text类型是不能有默认值的.如此一来就有了矛盾,text类型的字段明明不能有默认值,那么为什么还会给我报错,提示缺少默认值呢? 二.问题所在 1.查看字段类型 通过phpmyadmin查看数据表的字段结构,发现text字段在创建的时候,语法为: //创建字段
记录 MySQL5.7 datetime 默认值设为'0000-00-00 00:00:00'值出错 我的MySQL版本 mysql --version 5.7.28 C:\Users\x1c>mysql --version mysql Ver 14.14 Distrib 5.7.28, for Win64 (x86_64) C:\Users\x1c> 我要创建的表结构 DROP TABLE IF EXISTS `dianpingdb`.`user`; CREATE TABLE `dianpi
异常信息 exception.ServiceException: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'XXX' at row 1 问题 代码运行发现有一行报警,很明显可以判断字段插入内容超过表结构设置的长度了.不过比较奇怪的是,为什么测试环境一直没测试出来呢,难道是测试和线上环境Mysql配置不同?咨询了dba,得到的反馈是一致的. 分析 首先可以确定的是测试环境和线上表单是
在向数据库表中插入中文时一直报错 MySQL的默认编码是Latin1,不支持中文,要支持中文需要把数据库的默认编码修改为gbk或者utf8. 1.需要以root用户身份登陆才可以查看数据库编码方式(以root用户身份登陆的命令为:>mysql -u root –p,之后输入root用户的密码).查看数据库的编码方式命令为: mysql> show variables where Variable_name like '%char%'; +--------------------------+-