直接抛出错误信息

同样我们还经常看到(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
博客内容讨论了在执行SQL插入操作时遇到的错误,特别是关于'Incorrect string value'的问题。作者指出,问题源于数据表中字段存在空字符串,而非SQL语句错误。尝试通过设置字段默认值的方法未能解决问题。提出了一种新的解决策略,即在插入前检查字段,如果为空字符串则替换为NULL。这种方法虽然效率较低,但可以避免错误发生。
609

被折叠的 条评论
为什么被折叠?



