我的insert语句如下所示:
INSERT INTO foo (bar) VALUES ('');
Run Code Online (Sandbox Code Playgroud)
该bar
字段的创建方式如下:
bar INT(11)
COLLATION: (NULL)
NULL: YES
DEFAULT: (NULL)
Run Code Online (Sandbox Code Playgroud)
MySQL版本:5.1.
不应该空字符串插入NULL吗?我不确定为什么我看到表中存储了零(0).
Ham*_*ite 12
默认情况下,MySQL会尝试将列的无效值强制转换为正确的类型.这里,空字符串''
是string 类型,既不是整数也不是NULL.我建议采取以下步骤:
INSERT INTO foo (bar) VALUES (NULL);
你没有插入NULL
桌子; 你正在插入一个空字符串(显然将其映射为零作为int).请记住,这NULL
是SQL中的一个独特值; NULL != ''
.通过指定任何值(除了NULL
),您不会插入NULL
.如果您未指定值,则仅使用默认值; 在您的示例中,您将字符串值指定为整数列.
归档时间: |
|
查看次数: |
10741 次 |
最近记录: |