數據庫字段設置為<非空><默認值>


為什么數據庫要設置默認值呢?因為我們希望在插入數據時,有意或無意間被忽略的字段能夠交由MySQL按我們事先預想的方式處理,例如一些默認正常狀態碼、用戶插入數據時候尚未設置的文本字段,諸如此類。

假設student表里有一個字段score被設置為<非空><默認值>,插入一條數據記錄時,score字段值為空<''>,那這時score的字段值為<''>還是<默認值>?

設置默認值的作用只有在忽略了字段時才會發揮作用。何為忽略了字段,就是在寫SQL插入語句的時候,不寫要忽略的字段的字段名,例如:有一個student表,有字段id,name,age,score。score設置了默認值99,插入一條語句,insert into student (name,age)values('tom',3),這時忽略了score字段(id字段設置了主鍵和自動增長),mysql數據庫就會按照事先設置的默認值插入到數據庫中。

所以以上問題的答案是<''>。

因為NULL跟''是完全不一樣的,NULL表示未知,沒有類型可言;而''是有類型的,表示一個空的字符串。所以,在插入有默認值的字段時,插入值為''時,依然會插入到數據庫中。

而實際上數據庫中的<空>表示的是NULL

例如,當mysl數據庫執行insert into student(name,age,score)values('tom',3,null)時會報錯:#1048 - Column 'score' cannot be null


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM