java修改数据库失败次数

java修改数据库失败次数,第1张

息 不报错 确修改失败了

java mysql修改信息 不报错 确修改失败了_数据库字段异常可能是mysql严格模式导致...

IvanhoeBlack

原创

关注

0点赞·498人阅读

最近,新手同事Java开发中遇到数据库报错:

“ java.sql.SQLIntegrityConstraintViolationException: Column 'create_time' cannot be null”

而且开发环境上没有出现,生产环境上才会出现。看过后告诉他是mysql strict mode(严格模式)导致。生产环境的mysql版本比较高,打开了相关配置。

5.6.6 版本后默认打开严格模式。

这其实是一个常见问题,和mysql 打交道时比较容易遇到。

一、查看sql-mode

select @@sql_mode

二、解决办法

方法1:修改sql_mode。

linux上找到my.cnf文件,window上找到my.ini文件。

修改 sql_mode赋值。

方法2:修改代码,增加条件判断和主动赋值。

因为不知道生产环境的配置,建议还是不要偷懒。

三、一些mysql 严格模式的选项

NO_ZERO_DATE 认为日期为0非法

STRICT_TRANS_TABLES 表示启用严格模式。例如把''传递给int字段非法。

你可以在前端页面上控制,在input上加个readonly属性就可以了。

<input type="text" name="userid"  readonly="readonly" />

要更新时间类型

update 表

set 日期字段=STUFF(convert(varchar(26),日期字段,120),1,4,'要修改成哪一年')

where XXXXX

update 表

set 日期字段=STUFF(convert(varchar(26),日期字段,120),6,2,'要修改成几月份')

where XXXXX

这样的格式试试呢


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9967539.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-03
下一篇2023-05-03

发表评论

登录后才能评论

评论列表(0条)

    保存