我完全不熟悉數據庫和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