mysql中ERROR 1292是什么错误

mysql中ERROR 1292是什么错误,第1张

在navicat上远程连接MySQL,运行存储过程时传入了一个时间参数‘0000-00-00 00:00:00’,发生如下错误

1292 - Incorrect datetime value: '0000-00-00 00:00:00' for column 'targetTime' at row 1

官方文档上说明MySQL允许将’0000-00-00’保存为“伪日期”,但是MySQL有一个NO_ZERO_DATE SQL模式,这个模式默认是打开的,不允许产生伪日期,所以要关掉这个选项。执行SQL语句

set global

sql_mode='STRICT_TRANS_TABLES,STRICT_ALL_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER'

使用show variables like '%sql_mode%'查看关于sql_mode的变量,如果没有NO_ZERO_IN_DATE和NO_ZERO_DATE就说明修改成功!

更新数据表的时候,Mysql报错

Err] 1292 - Truncated incorrect DOUBLE value: 'XXX'

update user set nickname2 = "2"+name where nickname!=""

解决方法:

SQL语句在拼接字符串时使用函数CONCAT()而不要用“+”

正确语法:

update user set nickname2 = CONCAT(2,nickname) where LENGTH(user_nick)<10

删除表数据

TRUNCATE TABLE

delete from table where

在使用pymysql时,执行完成后,看到有warning错误信息:

Warning: (1292, "Truncated incorrect DOUBLE value: 'policeman1'")

执行的sql语句:delete from police_user where account_number=500514

后来查看表的字段属性,发现account_number是varchar类型,而sql中的类型是int类型,导致报错

修改sql语句后问题解决:delete from police_user where account_number="500514"


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

原文地址: http://outofmemory.cn/zaji/6243475.html

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

发表评论

登录后才能评论

评论列表(0条)

保存