解决MySQLdb._exceptions.OperationalError:(1366,“Incorrect integer value: ‘ ‘ for column ‘money‘at 1“)

博客内容讨论了在执行SQL插入操作时遇到的错误,特别是关于'Incorrect string value'的问题。作者指出,问题源于数据表中字段存在空字符串,而非SQL语句错误。尝试通过设置字段默认值的方法未能解决问题。提出了一种新的解决策略,即在插入前检查字段,如果为空字符串则替换为NULL。这种方法虽然效率较低,但可以避免错误发生。
摘要由CSDN通过智能技术生成

直接抛出错误信息
在这里插入图片描述
同样我们还经常看到(1366,"Incorrect string value: ’ ’ for column ‘XX’ at 1 ")
这样的问题,事实上它们是一类问题,这个不是你的SQL语句写错了,而是你的数据出现问题。我们能根据错误信息提示字段找到数据表中问题数据,发现在数据表中对应的Money字段出现空数据,形如下表
在这里插入图片描述

对于这样的问题,我在网上找到一种处理方法说把数据库中字段设置默认设置一个值,这样就避免了’ ‘这样的问题。但是经过我实际上手操作后,我发现并不能解决
所以既然找到了问题,那解决方法肯定不止一个,我想去判断该字段是否为’ ',如果是直接将该字段设置为null,慢是慢了点,但也是一种解决办法

                    if (row_values[13] == ''):
                        try:
                            self.db.prepare(f"insert into rescued values('{begin}', '{row_values[1]}', '{row_values[2]}', '{row_values[3]}','{row_values[4]}','{row_values[5]}','{row_values[6]}','{row_values[7]}','{row_values[8]}','{row_values[9]}','{row_values[10]}', '{row_values[11]}', '{row_values[12]}', null ,'{row_values[14]}','{row_values[15]}','{row_values[16]}','{row_values[17]}','{row_values[18]}','{row_values[19]}','{row_values[20]}','{row_values[21]}','{row_values[22]}')")
                        except Exception as e:
                            errorMessage = "第 %d 行出现错误,请先解决错误" % (i + 1)
                            print(errorMessage)
                            showerror("错误信息", errorMessage)
                            flag = 1
                            break
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值