什么是mysql中列的默認值

下面講講關于什么是MySQL中列的默認值,文字的奧妙在于貼近主題相關。所以,閑話就不談了,我們直接看下文吧,相信看完什么是mysql中列的默認值這篇文章你一定會有所受益。

成都創(chuàng)新互聯專注于沾化企業(yè)網站建設,響應式網站開發(fā),商城網站建設。沾化網站建設公司,為沾化等地區(qū)提供建站服務。全流程按需制作網站,專業(yè)設計,全程項目跟蹤,成都創(chuàng)新互聯專業(yè)和態(tài)度為您提供的服務

在 MySQL 中,每個字段定義都包含附加約束或者修飾符,這些可以用來增加對所輸入數據的約束。

NULL 和 NOT NULL 修飾符、DEFAULT 修飾符,AUTO_INCREMENT 修飾符。

NULL 和 NOT NULL 修飾符

可以在每個字段后面都加上這 NULL 或 NOT NULL 修飾符來指定該字段是否可以為空(NULL),

還是說必須填上數據 (NOT NULL)。MySQL 默認情況下指定字段為 NULL 修飾符,如果一個字段指定為NOT NULL,

MySQL 則不允許向該字段插入空值(這里面說的空值都為 NULL),因為這是 “規(guī)定”。

但是在自增列和 TIMESTAMP 字段中,這個規(guī)則并不適用。

向這些字段中插入 NULL 值將會導致插入下一個自動增加的值或者當前的時間戳。

mysql> create table t10 (
    -> id int not null default 0,
    -> name char(10) not null default ''
    -> );
Query OK, 0 rows affected (0.01 sec)
#插入2個值是ok的.
mysql> insert into t10 values (1,"lisi");
Query OK, 1 row affected (0.08 sec)
#只插入一個值,也是ok的.
mysql> insert into t10 (id) values (2);
Query OK, 1 row affected (0.00 sec)
#發(fā)現未插入的name列繼承default的“”值.
mysql> select * from t10;
+----+------+
| id | name |
+----+------+
|  1 | lisi |
|  2 |      |
+----+------+
2 rows in set (0.00 sec)
mysql> select * from t10 where name = '';
+----+------+
| id | name |
+----+------+
|  2 |      |
+----+------+
1 row in set (0.00 sec)

#創(chuàng)建t11表,字段id,name不為null.
mysql> create table t11 ( id int not null, name char(10) not null);
Query OK, 0 rows affected (0.01 sec)
#如果只插入其中一列,發(fā)現報錯,其中另一列不能為空.
mysql> insert into t11 (id) values (2);
ERROR 1364 (HY000): Field 'name' doesn't have a default value
#如果第二列插入"null"也會報錯,設置字段為not null.
mysql> insert into t11 (id,name) values (2,null);
ERROR 1048 (23000): Column 'name' cannot be null
#插入“0”,""字段是ok的.
mysql> insert into t11 (id,name) values (2,0);
Query OK, 1 row affected (0.00 sec)
mysql> insert into t11 (id,name) values (2,"");
Query OK, 1 row affected (0.01 sec)

結論:

如果一個字段中沒有指定 DEFAULT 修飾符,MySQL 會依據這個字段是 NULL 還是 NOT NULL 自動設置默認值。

如果指定字段可以為 NULL,則 MySQL 為其設置默認值為 NULL。

如果是 NOT NULL 字段,MySQL 對于數值類型插入 0,字符串類型插入空字符串.

對于以上什么是mysql中列的默認值相關內容,大家還有什么不明白的地方嗎?或者想要了解更多相關,可以繼續(xù)關注我們的行業(yè)資訊板塊。

新聞名稱:什么是mysql中列的默認值
新聞來源:http://muchs.cn/article38/jcjepp.html

成都網站建設公司_創(chuàng)新互聯,為您提供服務器托管網站策劃、虛擬主機App設計、微信小程序、移動網站建設

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

h5響應式網站建設