我对数据库和SQL完全陌生
我有一个标有NOT NULL
的列
当我在执行INSERT时忘记给该列赋值时,它会在该列中插入一个0值
有什么办法可以让它返回错误而不是将NULL
更改为0吗?
答案 0 :(得分:4)
您想查看SQL_MODE
配置。它允许您定义MySQL处理此类事情的严格程度。默认情况下它非常宽松,这不是我通常想要的。它还取决于数据类型,特别是对于Dates,默认情况下它不是最佳的。
我个人经常去STRICT_ALL_TABLES
。
请参阅MySQL手册(5.0):
答案 1 :(得分:1)
有两个可能的原因:
INT NOT NULL
并将NULL
投放到INT
,结果为0
显然,第二种情况似乎就是这样。如果您想要获得错误,可以将SQL_MODE
更改为严格。另一种可能性是在您的progam中进行输入验证,而不是将其留给SQL。
答案 2 :(得分:0)
我猜你有一个该列的DEFAULT值