Eisen's Blog

© 2023. All rights reserved.

在一个 mysql 整型字段插入字符串数据所引发的问题

June 02, 2011

mysql

前几天意外之中遇到一个怪异的问题。由于我自己安装了双系统,win7+ubuntu,并且两个系统里面都有 mysql。我困惑的发现同样格式的table,同样的插入语句在 linux 下就插入成功,可是在 win7 下就失败...

下面是linux下运行的结果

图丢了

对一个int字段插入一个空字符串 '' 居然成功了!可是在 win7 下却死活不能插入成功。仔细看来,发现在 linux mysql 下执行这个插入动作之后会出现一个 warning。

mysql> show warnings; | Warning | 1366 | Incorrect integer value: '' for column 'value' at row 1 | 1 row in set (0.00 sec)

这和win7下的插入失败的 error 内容完全相符!

我跑去 stackoverflow 查了一下,最终发现了这个诡异的问题的根源,mysql 配置的默认值的问题...

这里是 stackoverflow 里有关这个问题的链接,讲的还是很详细的:Why can you insert characters into a MySQL int field?