我完全不熟悉数据库和SQL。我有一个列NOT NULL
列。
当我在执行INSERT时忘记给该列赋值时,它会在该列中插入一个0值。
有什么我可以做的,使其返回一个错误,而不是将NULL
更改为0?为什么MySQL将null更改为零?
0
A
回答
4
你想看看在SQL_MODE
配置的默认值。它允许你定义MySQL如何严格处理这些事情。默认情况下它非常宽松,这不是我通常想要的。它也取决于数据类型,特别是在日期默认情况下它不是最优的。
我个人通常会去STRICT_ALL_TABLES
。
见MySQL手册(5.0)这里:
0
我想你该列
1
这有两个可能的原因:
- 您有该列
- 你列定义的默认值是
INT NOT NULL
,并将NULL
转换为INT
,结果为0
显然,第二种情况似乎就是这种情况。如果你想得到一个错误,你可以将SQL_MODE
更改为严格。另一种可能性是在你的程序中进行输入验证,而不是把它留给SQL。
该列有默认值吗? – 2010-12-03 14:04:05
它是一个整数列吗?你没有传递一个价值,或者你认为价值是空的? – 2010-12-03 14:04:32