人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動(dòng)態(tài)

MySQL 字段默認(rèn)值該如何設(shè)置

發(fā)布日期:2022-02-19 12:17 | 文章來源:gibhub

在 MySQL 中,我們可以為表字段設(shè)置默認(rèn)值,在表中插入一條新記錄時(shí),如果沒有為某個(gè)字段賦值,系統(tǒng)就會(huì)自動(dòng)為這個(gè)字段插入默認(rèn)值。關(guān)于默認(rèn)值,有些知識(shí)還是需要了解的,本篇文章我們一起來學(xué)習(xí)下字段默認(rèn)值相關(guān)知識(shí)。

1.默認(rèn)值相關(guān)操作

我們可以用 DEFAULT 關(guān)鍵字來定義默認(rèn)值,默認(rèn)值通常用在非空列,這樣能夠防止數(shù)據(jù)表在錄入數(shù)據(jù)時(shí)出現(xiàn)錯(cuò)誤。

創(chuàng)建表時(shí),我們可以給某個(gè)列設(shè)置默認(rèn)值,具體語法格式如下:

#格式模板
<字段名><數(shù)據(jù)類型>DEFAULT<默認(rèn)值>
#示例
mysql>CREATETABLE`test_tb`(
->`id`intNOTNULLAUTO_INCREMENT,
->`col1`varchar(50)notnullDEFAULT'a',
->`col2`intnotnullDEFAULT1,
->PRIMARYKEY(`id`)
->)ENGINE=InnoDBDEFAULTCHARSET=utf8;
QueryOK,0rowsaffected(0.06sec)
mysql>desctest_tb;
+-------+-------------+------+-----+---------+----------------+
|Field|Type|Null|Key|Default|Extra|
+-------+-------------+------+-----+---------+----------------+
|id|int(11)|NO|PRI|NULL|auto_increment|
|col1|varchar(50)|NO||a||
|col2|int(11)|NO||1||
+-------+-------------+------+-----+---------+----------------+
3rowsinset(0.00sec)
mysql>insertintotest_tb(col1)values('fdg');
QueryOK,1rowaffected(0.01sec)
mysql>insertintotest_tb(col2)values(2);
QueryOK,1rowaffected(0.03sec)
mysql>select*fromtest_tb;
+----+------+------+
|id|col1|col2|
+----+------+------+
|1|fdg|1|
|2|a|2|
+----+------+------+
2rowsinset(0.00sec)

通過以上實(shí)驗(yàn)可以看出,當(dāng)該字段設(shè)置默認(rèn)值后,插入數(shù)據(jù)時(shí),若不指定該字段的值,則以默認(rèn)值處理。

關(guān)于默認(rèn)值,還有其他操作,例如修改默認(rèn)值,增加默認(rèn)值,刪除默認(rèn)值等。一起來看下這些應(yīng)該如何操作。

#添加新字段并設(shè)置默認(rèn)值
altertable`test_tb`addcolumn`col3`varchar(20)notnullDEFAULT'abc';
#修改原有默認(rèn)值
altertable`test_tb`altercolumn`col3`setdefault'3a';
altertable`test_tb`changecolumn`col3``col3`varchar(20)notnullDEFAULT'3b';
altertable`test_tb`MODIFYcolumn`col3`varchar(20)notnullDEFAULT'3c';
#刪除原有默認(rèn)值
altertable`test_tb`altercolumn`col3`dropdefault;
#增加默認(rèn)值(和修改類似)
altertable`test_tb`altercolumn`col3`setdefault'3aa';

2.幾點(diǎn)使用建議

其實(shí)不止非空字段可以設(shè)置默認(rèn)值,普通字段也可以設(shè)置默認(rèn)值,不過一般推薦字段設(shè)為非空。

mysql>altertable`test_tb`addcolumn`col4`varchar(20)DEFAULT'4a';
QueryOK,0rowsaffected(0.12sec)
Records:0Duplicates:0Warnings:0
mysql>desctest_tb;
+-------+-------------+------+-----+---------+----------------+
|Field|Type|Null|Key|Default|Extra|
+-------+-------------+------+-----+---------+----------------+
|id|int(11)|NO|PRI|NULL|auto_increment|
|col1|varchar(50)|NO||a||
|col2|int(11)|NO||1||
|col3|varchar(20)|NO||3aa||
|col4|varchar(20)|YES||4a||
+-------+-------------+------+-----+---------+----------------+
5rowsinset(0.00sec)

在項(xiàng)目開發(fā)中,有些默認(rèn)值字段還是經(jīng)常使用的,比如默認(rèn)為當(dāng)前時(shí)間、默認(rèn)未刪除、某狀態(tài)值默認(rèn)為 1 等等。簡(jiǎn)單通過下表展示下常用的一些默認(rèn)值字段。

CREATETABLE`default_tb`(
`id`intunsignedNOTNULLAUTO_INCREMENTCOMMENT'自增主鍵',
...
`country`varchar(50)notnullDEFAULT'中國(guó)',
`col_status`tinyintnotnullDEFAULT1COMMENT'1:代表啥2:代表啥...',
`col_time`datetimeNOTNULLDEFAULT'2020-10-0100:00:00'COMMENT'什么時(shí)間',
`is_deleted`tinyintnotnullDEFAULT0COMMENT'0:未刪除1:刪除',
`create_time`timestampNOTNULLDEFAULTCURRENT_TIMESTAMPCOMMENT'創(chuàng)建時(shí)間',
`update_time`timestampNOTNULLDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMPCOMMENT'修改時(shí)間',
PRIMARYKEY(`id`)
)ENGINE=InnoDBDEFAULTCHARSET=utf8;

這里也要提醒下,默認(rèn)值一定要和字段類型匹配,比如說某個(gè)字段表示狀態(tài)值,可能取值 1、2、3... 那這個(gè)字段推薦使用 tinyint 類型,而不應(yīng)該使用 char 或 varchar 類型。

筆者結(jié)合個(gè)人經(jīng)驗(yàn),總結(jié)下關(guān)于默認(rèn)值使用的幾點(diǎn)建議:

非空字段設(shè)置默認(rèn)值可以預(yù)防插入報(bào)錯(cuò)。

默認(rèn)值同樣可設(shè)置在可為 null 字段。

一些狀態(tài)值字段最好給出備注,標(biāo)明某個(gè)數(shù)值代表什么狀態(tài)。

默認(rèn)值要和字段類型匹配。

總結(jié):

本篇文章主要講述 MySQL 字段默認(rèn)值相關(guān)知識(shí),比較簡(jiǎn)單易懂,希望各位有所收獲。

以上就是MySQL 字段默認(rèn)值該如何設(shè)置的詳細(xì)內(nèi)容,更多關(guān)于MySQL 字段默認(rèn)值的資料請(qǐng)關(guān)注本站其它相關(guān)文章!

美國(guó)服務(wù)器租用

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開通

自選配置、實(shí)時(shí)開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對(duì)1客戶咨詢顧問

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部