bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

mysql枚舉怎么 數據庫 枚舉enum

mysql怎么獲取數據表字段enum類型的默認值

mysql怎么獲取數據表字段enum類型的默認值

魯甸網站建設公司成都創新互聯,魯甸網站設計制作,有大型網站制作公司豐富經驗。已為魯甸數千家提供企業網站建設服務。企業網站搭建\成都外貿網站建設公司要多少錢,請找那個售后服務好的魯甸做網站的公司定做!

本節主要內容:

MySQL數據類型之枚舉類型ENUM

MySQL數據庫提供針對字符串存儲的一種特殊數據類型:枚舉類型ENUM,這種數據類型可以給予我們更多提高性能、降低存儲容量和降低程序代碼理解的技巧,前面介紹了首先介紹了四種數據類型的特性總結,其后又分別介紹了布爾類型BOOL或稱布爾類型BOOLEAN,以及后續會再單獨介紹集合類型SET。

本文詳細介紹集合類型enum測試過程與總結,加深對mysql數據庫集合類型enum的理解記憶。

n 枚舉類型ENUM

a).數據庫表mysqlops_enum結構

執行數據庫表mysqlops_enum創建的SQL語句:

復制代碼代碼示例:

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)

執行查詢數據庫表mysqlops_enum結構的SQL語句:

復制代碼代碼示例:

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)

小結:

為方便測試枚舉類型,如何處理字段定義的默認值、是否允許為NULL和空值的情況,我們定義了2個枚舉類型的字段名,經過對比創建與查詢數據庫中表的結構信息,沒有發現MySQL數據庫默認修改任何信息。

b). 寫入不同類型的測試數據

寫入一條符合枚舉類型定義的記錄值:

復制代碼代碼示例:

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)

測試第二個枚舉類型字Work_City是否允許為空記錄值:

復制代碼代碼示例:

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)

測試第二個枚舉類型字段Work_City是否允許存儲NULL值:

復制代碼代碼示例:

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

測試第一個枚舉類型字段Job_type是否可以存儲空白值:

復制代碼代碼示例:

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)

測試第二個枚舉類型字段Job_City如何處理沒有在定義中描述的值域第一個枚舉類型字段Work_Type的默認值沒指定情況下,會默認填寫那個值:

復制代碼代碼示例:

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)

測試第二個枚舉類型字段未插入數據的情況下,是否能使用上字段定義中指定的默認值:

復制代碼代碼示例:

root@localhost : test 11:23:17 INSERT INTO Mysqlops_enum(ID,Job_type) VALUES(6,'DBA');

Query OK, 1 row affected (0.00 sec)

mysql中enum類型怎么設置

根據用戶定義的枚舉值與分片節點映射文件,直接定位目標分片。

用戶在rule.xml中配置枚舉值文件路徑和分片索引是字符串還是數字,DBLE在啟動時會將枚舉值文件加載到內存中,形成一個映射表

在DBLE的運行過程中,用戶訪問使用這個算法的表時,WHERE子句中的分片索引值會被提取出來,直接查映射表得到分片編號

與MyCat的類似分片算法對比

中間件

DBLE

MyCat

分片算法種類 ? ?enum 分區算法 ? ?分片枚舉 ?

兩種中間件的枚舉分片算法使用上無差別。

開發注意點

【分片索引】1. 整型數字(可以為負數)或字符串((不含=和換行符)

【分片索引】2. 枚舉值之間不能重復

Male=0Male=1

或者

123=1123=2

會導致分片策略加載出錯

【分片索引】3. 不同枚舉值可以映射到同一個分片上

Mr=0Mrs=1Miss=1Ms=1123=0

運維注意點

【擴容】1. 增加枚舉值無需數據再平衡

【擴容】2. 增加一個枚舉值的分片數量數時,需要對局部數據進行遷移

【縮容】1. 減少枚舉值需要數據再平衡

【縮容】2. 減少一個枚舉值的分片數量數時,需要對局部數據進行遷移

配置注意點

【配置項】1. 在 rule.xml 中,可配置項為?property name="defaultNode" 、property name="mapFile" 和 property name="type"

【配置項】2. 在 rule.xml 中配置?property name="defaultNode"?標簽,非必須配置項,不配置該項的話,用戶的分片索引值沒落在 mapFile 定義的范圍時,DBLE 會報錯;若需要配置,必須為非負整數,用戶的分片索引值沒落在 mapFile 定義的范圍時,DBLE 會路由至這個值的 MySQL 分片

【配置項】3. 在 rule.xml 中配置 property name="mapFile"?標簽,范圍映射文件的路徑:若在映射文件在 DBLE_HOME/conf 或其中,則可以使用相對路徑的形式配置,例如,映射文件是 DBLE_HOME/conf/map/table_map.txt 時,配置值就可以簡寫為 map/table_map.txt;映射文件在 DBLE_HOME/conf 目錄以外時,需要使用絕對路徑,但這種做法需要考慮用戶權限等問題,因此不建議把映射文件放在 DBLE_HOME/conf 外。

【配置項】4. 編輯 mapFile 所配置的文件

記錄格式為:枚舉值=分片編號

枚舉值可以是整型數字,或任意字符(除了=和換行符),分片編號必須是非負整型數字,記錄之間以換行分隔,一行僅能有一條記錄,枚舉值不能夠是“DEFAULT_NODE”這個字符串,允許以“//”和“#”在行首來注釋該行

【配置項】5. 在 rule.xml 中配置 property name="type"?標簽;type 必須為整型;取值為 0 時,mapFile 的枚舉值必須為整型;取值為非 0 時,mapFile 的枚舉值可以是任意字符(除了=和換行符)

怎么在MySQL枚舉類型中增加新參數進去?

用這句試試:

alter?table?change?column?type?type?menu('a','b','c','d','e');

看看行不

網站名稱:mysql枚舉怎么 數據庫 枚舉enum
網站路徑:http://vcdvsql.cn/article14/ddcside.html

成都網站建設公司_創新互聯,為您提供面包屑導航全網營銷推廣網站導航小程序開發網站收錄響應式網站

廣告

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

成都網站建設公司