mysql取值可為星期一到星期天七天中的某一天的枚舉類(lèi)型很準(zhǔn)確。根據(jù)查詢(xún)相關(guān)資料信息顯示,mysql取值可為星期一到星期天七天中的某一天的枚舉類(lèi)型是weekday枚舉,weekday枚舉類(lèi)型常用于各項(xiàng)專(zhuān)業(yè),所以mysql取值可為星期一到星期天七天中的某一天的枚舉類(lèi)型很準(zhǔn)確。
10余年的寶坻網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)營(yíng)銷(xiāo)推廣的優(yōu)勢(shì)是能夠根據(jù)用戶(hù)設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整寶坻建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)公司從事“寶坻網(wǎng)站設(shè)計(jì)”,“寶坻網(wǎng)站推廣”以來(lái),每個(gè)客戶(hù)項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
mysql怎么獲取數(shù)據(jù)表字段enum類(lèi)型的默認(rèn)值
本節(jié)主要內(nèi)容:
MySQL數(shù)據(jù)類(lèi)型之枚舉類(lèi)型ENUM
MySQL數(shù)據(jù)庫(kù)提供針對(duì)字符串存儲(chǔ)的一種特殊數(shù)據(jù)類(lèi)型:枚舉類(lèi)型ENUM,這種數(shù)據(jù)類(lèi)型可以給予我們更多提高性能、降低存儲(chǔ)容量和降低程序代碼理解的技巧,前面介紹了首先介紹了四種數(shù)據(jù)類(lèi)型的特性總結(jié),其后又分別介紹了布爾類(lèi)型BOOL或稱(chēng)布爾類(lèi)型BOOLEAN,以及后續(xù)會(huì)再單獨(dú)介紹集合類(lèi)型SET。
本文詳細(xì)介紹集合類(lèi)型enum測(cè)試過(guò)程與總結(jié),加深對(duì)mysql數(shù)據(jù)庫(kù)集合類(lèi)型enum的理解記憶。
n 枚舉類(lèi)型ENUM
a).數(shù)據(jù)庫(kù)表mysqlops_enum結(jié)構(gòu)
執(zhí)行數(shù)據(jù)庫(kù)表mysqlops_enum創(chuàng)建的SQL語(yǔ)句:
復(fù)制代碼代碼示例:
root@localhost : test 11:22:29 CREATE TABLE Mysqlops_enum(ID INT NOT NULL AUTO_INCREMENT,
- Job_type ENUM('DBA','SA','Coding Engineer','JavaScript','NA','QA','','other') NOT NULL,
- Work_City ENUM('shanghai','beijing','hangzhou','shenzhen','guangzhou','other') NOT NULL DEFAULT 'shanghai',
- PRIMARY KEY(ID)
- )ENGINE=InnoDB CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
Query OK, 0 rows affected (0.00 sec)
執(zhí)行查詢(xún)數(shù)據(jù)庫(kù)表mysqlops_enum結(jié)構(gòu)的SQL語(yǔ)句:
復(fù)制代碼代碼示例:
root@localhost : test 11:23:31 SHOW CREATE TABLE Mysqlops_enum\G
*************************** 1. row ***************************
Table: Mysqlops_enum
Create Table: CREATE TABLE `Mysqlops_enum` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`Job_type` enum('DBA','SA','Coding Engineer','JavaScript','NA','QA','','other') NOT NULL,
`Work_City` enum('shanghai','beijing','hangzhou','shenzhen','guangzhou','other') NOT NULL DEFAULT 'shanghai',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
小結(jié):
為方便測(cè)試枚舉類(lèi)型,如何處理字段定義的默認(rèn)值、是否允許為NULL和空值的情況,我們定義了2個(gè)枚舉類(lèi)型的字段名,經(jīng)過(guò)對(duì)比創(chuàng)建與查詢(xún)數(shù)據(jù)庫(kù)中表的結(jié)構(gòu)信息,沒(méi)有發(fā)現(xiàn)MySQL數(shù)據(jù)庫(kù)默認(rèn)修改任何信息。
b). 寫(xiě)入不同類(lèi)型的測(cè)試數(shù)據(jù)
寫(xiě)入一條符合枚舉類(lèi)型定義的記錄值:
復(fù)制代碼代碼示例:
root@localhost : test 11:22:35 INSERT INTO Mysqlops_enum(ID,Job_type,Work_City) VALUES(1,'QA','shanghai');
Query OK, 1 row affected (0.00 sec)
測(cè)試第二個(gè)枚舉類(lèi)型字Work_City是否允許為空記錄值:
復(fù)制代碼代碼示例:
root@localhost : test 11:22:42 INSERT INTO Mysqlops_enum(ID,Job_type,Work_City) VALUES(2,'NA','');
Query OK, 1 row affected, 1 warning (0.00 sec)
root@localhost : test 11:22:48 SHOW WARNINGS;
+---------+------+------------------------------------------------+
| Level | Code | Message |
+---------+------+------------------------------------------------+
| Warning | 1265 | Data truncated for column 'Work_City' at row 1 |
+---------+------+------------------------------------------------+
1 row in set (0.00 sec)
測(cè)試第二個(gè)枚舉類(lèi)型字段Work_City是否允許存儲(chǔ)NULL值:
復(fù)制代碼代碼示例:
root@localhost : test 11:22:53 INSERT INTO Mysqlops_enum(ID,Job_type,Work_City) VALUES(3,'Other',NULL);
ERROR 1048 (23000): Column 'Work_City' cannot be null
測(cè)試第一個(gè)枚舉類(lèi)型字段Job_type是否可以存儲(chǔ)空白值:
復(fù)制代碼代碼示例:
root@localhost : test 11:22:59 INSERT INTO Mysqlops_enum(ID,Job_type,Work_City) VALUES(4,'','hangzhou');
Query OK, 1 row affected (0.00 sec)
測(cè)試第二個(gè)枚舉類(lèi)型字段Job_City如何處理沒(méi)有在定義中描述的值域第一個(gè)枚舉類(lèi)型字段Work_Type的默認(rèn)值沒(méi)指定情況下,會(huì)默認(rèn)填寫(xiě)那個(gè)值:
復(fù)制代碼代碼示例:
root@localhost : test 11:23:06 INSERT INTO Mysqlops_enum(ID,Work_City) VALUES(5,'ningbo');
Query OK, 1 row affected, 1 warning (0.00 sec)
root@localhost : test 11:23:13 SHOW WARNINGS;
+---------+------+------------------------------------------------+
| Level | Code | Message |
+---------+------+------------------------------------------------+
| Warning | 1265 | Data truncated for column 'Work_City' at row 1 |
+---------+------+------------------------------------------------+
1 row in set (0.00 sec)
測(cè)試第二個(gè)枚舉類(lèi)型字段未插入數(shù)據(jù)的情況下,是否能使用上字段定義中指定的默認(rèn)值:
復(fù)制代碼代碼示例:
root@localhost : test 11:23:17 INSERT INTO Mysqlops_enum(ID,Job_type) VALUES(6,'DBA');
Query OK, 1 row affected (0.00 sec)
根據(jù)用戶(hù)定義的枚舉值與分片節(jié)點(diǎn)映射文件,直接定位目標(biāo)分片。
用戶(hù)在rule.xml中配置枚舉值文件路徑和分片索引是字符串還是數(shù)字,DBLE在啟動(dòng)時(shí)會(huì)將枚舉值文件加載到內(nèi)存中,形成一個(gè)映射表
在DBLE的運(yùn)行過(guò)程中,用戶(hù)訪問(wèn)使用這個(gè)算法的表時(shí),WHERE子句中的分片索引值會(huì)被提取出來(lái),直接查映射表得到分片編號(hào)
與MyCat的類(lèi)似分片算法對(duì)比
中間件
DBLE
MyCat
分片算法種類(lèi) ? ?enum 分區(qū)算法 ? ?分片枚舉 ?
兩種中間件的枚舉分片算法使用上無(wú)差別。
開(kāi)發(fā)注意點(diǎn)
【分片索引】1. 整型數(shù)字(可以為負(fù)數(shù))或字符串((不含=和換行符)
【分片索引】2. 枚舉值之間不能重復(fù)
Male=0Male=1
或者
123=1123=2
會(huì)導(dǎo)致分片策略加載出錯(cuò)
【分片索引】3. 不同枚舉值可以映射到同一個(gè)分片上
Mr=0Mrs=1Miss=1Ms=1123=0
運(yùn)維注意點(diǎn)
【擴(kuò)容】1. 增加枚舉值無(wú)需數(shù)據(jù)再平衡
【擴(kuò)容】2. 增加一個(gè)枚舉值的分片數(shù)量數(shù)時(shí),需要對(duì)局部數(shù)據(jù)進(jìn)行遷移
【縮容】1. 減少枚舉值需要數(shù)據(jù)再平衡
【縮容】2. 減少一個(gè)枚舉值的分片數(shù)量數(shù)時(shí),需要對(duì)局部數(shù)據(jù)進(jìn)行遷移
配置注意點(diǎn)
【配置項(xiàng)】1. 在 rule.xml 中,可配置項(xiàng)為?property name="defaultNode" 、property name="mapFile" 和 property name="type"
【配置項(xiàng)】2. 在 rule.xml 中配置?property name="defaultNode"?標(biāo)簽,非必須配置項(xiàng),不配置該項(xiàng)的話,用戶(hù)的分片索引值沒(méi)落在 mapFile 定義的范圍時(shí),DBLE 會(huì)報(bào)錯(cuò);若需要配置,必須為非負(fù)整數(shù),用戶(hù)的分片索引值沒(méi)落在 mapFile 定義的范圍時(shí),DBLE 會(huì)路由至這個(gè)值的 MySQL 分片
【配置項(xiàng)】3. 在 rule.xml 中配置 property name="mapFile"?標(biāo)簽,范圍映射文件的路徑:若在映射文件在 DBLE_HOME/conf 或其中,則可以使用相對(duì)路徑的形式配置,例如,映射文件是 DBLE_HOME/conf/map/table_map.txt 時(shí),配置值就可以簡(jiǎn)寫(xiě)為 map/table_map.txt;映射文件在 DBLE_HOME/conf 目錄以外時(shí),需要使用絕對(duì)路徑,但這種做法需要考慮用戶(hù)權(quán)限等問(wèn)題,因此不建議把映射文件放在 DBLE_HOME/conf 外。
【配置項(xiàng)】4. 編輯 mapFile 所配置的文件
記錄格式為:枚舉值=分片編號(hào)
枚舉值可以是整型數(shù)字,或任意字符(除了=和換行符),分片編號(hào)必須是非負(fù)整型數(shù)字,記錄之間以換行分隔,一行僅能有一條記錄,枚舉值不能夠是“DEFAULT_NODE”這個(gè)字符串,允許以“//”和“#”在行首來(lái)注釋該行
【配置項(xiàng)】5. 在 rule.xml 中配置 property name="type"?標(biāo)簽;type 必須為整型;取值為 0 時(shí),mapFile 的枚舉值必須為整型;取值為非 0 時(shí),mapFile 的枚舉值可以是任意字符(除了=和換行符)
用這句試試:
alter?table?change?column?type?type?menu('a','b','c','d','e');
看看行不
分享名稱(chēng):MySQL枚舉型怎么 數(shù)據(jù)庫(kù)枚舉存數(shù)字還是字符串
URL鏈接:http://jinyejixie.com/article6/dopppig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開(kāi)發(fā)、ChatGPT、網(wǎng)頁(yè)設(shè)計(jì)公司、微信小程序、微信公眾號(hào)、小程序開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)