為什麼資料庫欄位需要設定預設值最新的答案

2025-06-20 14:30:07 字數 1961 閱讀 5653

1樓:網友

疑問的原因是沒啟用mysql的嚴格模式(strict mode),很多快捷開發環境自帶的mysql(phpnow wamp appserv等),都沒有啟用嚴格模式,甚至是在一些產品環境(production environment)都忽略了這點。

非嚴格模式下,mysql會容忍許多開發上的疏忽,例如把乙個長度100的字串插入到varcaht中只會截斷多餘的部分而不報錯。嚴格模式對資料的格式、長度、型別等進行校驗,你貼出的建表語句中指定了default,如果此時不指定default,在你認為會啟用預設值的時候會返回#1364錯誤。

開發階段最好啟用嚴格模式,這是對我們**嚴謹性的測試,嚴進寬出也能保證轉移到產品環境和後續的資料庫遷移、重構順利。

為什麼資料庫要設定預設值呢?因為我們希望在插入資料時,有意或無意間被忽略的欄位能夠交由mysql按你事先預想的方式處理,例如一些預設正常狀態碼、使用者插入資料時候尚未設定的文字欄位,諸如此類。

我的習慣是任何資料表的任何列都是非空(not null),在此基礎上將數字預設設為0,文字預設設為''(在phpmyadmin中留空)。這裡涉及乙個null和''的區別,對此我所知尚少,我使用''的原因是根據語義null表示「此欄位值為空」,而''表示「此欄位暫未設定值」。另乙個原因是在myisam引擎下,null對索引、索引統計、磁碟佔用都會有額外的開銷,乙個允許為null的列,每個欄位的長度都比not null的多1bit,我不確定最近幾年是否有所改善,涉及到null的資料大概是在時看過的。

防止誤人,有失偏頗請直接修改我的答案,謝謝。

在sql建立資料庫表時,如何為欄位設乙個預設值

2樓:惠企百科

1、開啟sql server management studio管理工具,輸入使用者名稱、密碼連線上sqlserver資料庫。

2、想要建立表的資料庫,在【表】選單上點選滑鼠右鍵,選擇【新建】->表】。

3、在開啟的表設計器介面,隨意新增3個列,然後給最後乙個列isenabled欄位設定預設值1,表示預設啟用。

4、選中【isenabled】欄位,在下方【列屬性】介面中,找到【預設值或繫結】選項,在右側填寫值1,這個就表示給這個列新增預設值1了。

5、新增完成後,按ctrl+s儲存表,這個時候會彈出乙個輸入表名稱的視窗,修改表名為您想要的即可,然後點選【確定】按鈕,這張表就建立完成了。

6、找到剛剛建立的表,點選滑鼠右鍵,依次選擇【編寫表指令碼為】->create 到】->新查詢器視窗】。

7、在開啟的sql指令碼介面,可以看到設定預設值,其實就是alter table為指定欄位新增default值即可。因此,如果不想在表設計器介面設定,就可以通過這樣的一行sql語句來設定預設值。

製作資料庫裡表時,設定欄位的預設值的作用是什麼?

3樓:網友

當插入資料的時候,此列不指定值時,用預設值來填充。

4樓:網友

預設值的作用,一般來說就是讓這個欄位裡有內容,將來方便查詢或更改。

一般情況舉例:

如人員名單,這裡性別是不為空的,但有時會有人忘記填寫,這個時候就需要填寫乙個預設的性別,比如:男。因為人都是有性別的,所以給個預設值,會方便使用的人來修改或查詢。

再一種就是插入資料的時間一般也需要預設值,一般都會填寫當前的系統時間,這個一般起到日誌的作用,將來知道這條資料是何時插入或更新的。

5樓:網友

作為初始資料,一是可以避免空值報錯,而是有預設資料,減少操作。

在sql建立資料庫表時,如何為欄位設乙個預設值

6樓:網友

直接在欄位後面 加上 default 值。

例如:create table test1 (id int primary key,name varchar(20) default '無名氏');

好久沒用了,應該是這樣。

資料庫欄位設定了預設值,插入資料時,該欄位值為空,會覆蓋了那

假如這個欄位是字元型的,你插入的時候,是插 也就是插入一個值,這個值是空 那就會把這個這段變為空。如果你是想留空,使用預設值。insert語句中就不要新增這個欄位,跳過。會。資料庫中欄位設定的預設值和插入的結果不一致,怎麼辦?解決方案1 insert的sql語句貼出來 解決方案2 先看看你的新增 是...

資料庫欄位是什麼意思資料庫欄位型別real是什麼?

在資料庫中,大多數時,表的 列 稱為 欄位 每個欄位包含某一專題的資訊。就像 通訊錄 資料庫中,姓名 聯絡 這些都是表中所有行共有的屬性,所以把這些列稱為 姓名 欄位和 聯絡 欄位。如圖,其中id,name,email就是欄位。資料庫屬性即是資料庫欄位 指資料庫中表的列。我們把表中的每一行叫做一個 ...

儲存到資料庫資料庫要弄什麼欄位呢直接傳

資料庫弄什麼欄位都可以啊,當然要看你需要實現什麼功能。insert到資料庫,只要語法合法就ok啦。如果你傳入的是string型別的資料要插入資料庫 那你的資料庫的型別一般可以根據情況設定成 nvarchar varchar char text等 nvarchar varchar 和char可在後面設...