欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

mysql怎么創(chuàng)建枚舉,mysql設(shè)置枚舉字段

mysql怎么獲取數(shù)據(jù)表字段enum類型的默認(rèn)值

mysql怎么獲取數(shù)據(jù)表字段enum類型的默認(rèn)值

為鎮(zhèn)原等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及鎮(zhèn)原網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計、鎮(zhèn)原網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

本節(jié)主要內(nèi)容:

MySQL數(shù)據(jù)類型之枚舉類型ENUM

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

本文詳細(xì)介紹集合類型enum測試過程與總結(jié),加深對mysql數(shù)據(jù)庫集合類型enum的理解記憶。

n 枚舉類型ENUM

a).數(shù)據(jù)庫表mysqlops_enum結(jié)構(gòu)

執(zhí)行數(shù)據(jù)庫表mysqlops_enum創(chuàng)建的SQL語句:

復(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í)行查詢數(shù)據(jù)庫表mysqlops_enum結(jié)構(gòu)的SQL語句:

復(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é):

為方便測試枚舉類型,如何處理字段定義的默認(rèn)值、是否允許為NULL和空值的情況,我們定義了2個枚舉類型的字段名,經(jīng)過對比創(chuàng)建與查詢數(shù)據(jù)庫中表的結(jié)構(gòu)信息,沒有發(fā)現(xiàn)MySQL數(shù)據(jù)庫默認(rèn)修改任何信息。

b). 寫入不同類型的測試數(shù)據(jù)

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

復(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)

測試第二個枚舉類型字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)

測試第二個枚舉類型字段Work_City是否允許存儲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

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

復(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)

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

復(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)

測試第二個枚舉類型字段未插入數(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)

mysql如何創(chuàng)建多個實(shí)例,求步驟,謝謝,急求

大多情況下,需要可靠而有效地克隆 MySQL 實(shí)例數(shù)據(jù)。這包括 MySQL 高可用的解決方案,其中需要在將實(shí)例加入組復(fù)制集群之前配置實(shí)例,或者在經(jīng)典復(fù)制模型中將其添加為 Slave。

為復(fù)制拓?fù)涠鴦?chuàng)建 MySQL 副本一直很麻煩。涉及的步驟很多,首先要備份 MySQL 服務(wù)器,通過網(wǎng)絡(luò)將備份傳輸?shù)轿覀兿胍砑拥綇?fù)制集的新 MySQL 節(jié)點(diǎn),然后在該節(jié)點(diǎn)上恢復(fù)備份并手動啟動 MySQL 服務(wù)器。為了高可用,最好還要將其正確設(shè)置備份的 GTID,并啟動并運(yùn)行群集。涉及的手動步驟數(shù)量過多不利于高可用。CLONE 插件解決了這個問題并簡化了副本配置。使您可以使用 MySQL 客戶端(和 SQL 命令)來配置新節(jié)點(diǎn)并在發(fā)生時觀察克隆進(jìn)度。無需手動處理多個步驟并維護(hù)自己的基礎(chǔ)架構(gòu)來配置新的 MySQL 節(jié)點(diǎn)。

MySQL 8.0.17 引入了 CLONE SQL 語句,使當(dāng)前的 MySQL 服務(wù)器成為另一個運(yùn)行在不同節(jié)點(diǎn)的 MySQL 服務(wù)器的“克隆”。我們將執(zhí)行 clone 語句的服務(wù)器實(shí)例稱為“受體”。克隆的源服務(wù)器實(shí)例稱為“供體”。供體克隆以一致的快照存儲在 InnoDB 存儲引擎中的所有數(shù)據(jù)和元數(shù)據(jù),以替換受體中的數(shù)據(jù)。

成功執(zhí)行 CLONE SQL 語句后,將自動重新啟動受體服務(wù)器。重新啟動涉及恢復(fù)克隆的快照數(shù)據(jù),就像用老方法復(fù)制數(shù)據(jù)一樣。恢復(fù)完成后,受體就是供體的克隆版,隨時可以使用!

這里有一些關(guān)于克隆過程的重要注意事項。

不克隆 MySQL 配置參數(shù),并且受體保留所有原始配置參數(shù),如克隆之前。這樣做是因為許多配置可能特定于節(jié)點(diǎn)(例如 PORT),因此保留它們似乎是一個不錯的選擇。另一方面,一些存儲配置確實(shí)需要在供體和受體之間匹配(例如 innodbpagesize),如果這樣的配置參數(shù)不匹配,CLONE 將報告錯誤。

CLONE?插件不會克隆二進(jìn)制日志。

CLONE?插件目前僅支持 InnoDB 存儲引擎。在其他存儲引擎(如 MyISAM 和 CSV)中創(chuàng)建的表將被克隆為空表。克隆基礎(chǔ)架構(gòu)的設(shè)計允許克隆 MySQL 支持的任何存儲引擎。但是,只有 InnoDB 序列化和反序列化方法已經(jīng)實(shí)現(xiàn)并經(jīng)過測試。

克隆會阻止供體中的所有并發(fā) DDL。

需要注意的事實(shí)是受體放棄所有數(shù)據(jù)以及任何二進(jìn)制日志,以便成為供體實(shí)例的克隆。在執(zhí)行 CLONE 之前,如果認(rèn)為有必要,需要備份當(dāng)前受體數(shù)據(jù)。

mysql中enum類型怎么設(shè)置

根據(jù)用戶定義的枚舉值與分片節(jié)點(diǎn)映射文件,直接定位目標(biāo)分片。

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

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

與MyCat的類似分片算法對比

中間件

DBLE

MyCat

分片算法種類 ? ?enum 分區(qū)算法 ? ?分片枚舉 ?

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

開發(fā)注意點(diǎn)

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

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

Male=0Male=1

或者

123=1123=2

會導(dǎo)致分片策略加載出錯

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

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

運(yùn)維注意點(diǎn)

【擴(kuò)容】1. 增加枚舉值無需數(shù)據(jù)再平衡

【擴(kuò)容】2. 增加一個枚舉值的分片數(shù)量數(shù)時,需要對局部數(shù)據(jù)進(jìn)行遷移

【縮容】1. 減少枚舉值需要數(shù)據(jù)再平衡

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

配置注意點(diǎn)

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

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

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

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

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

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

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

分享題目:mysql怎么創(chuàng)建枚舉,mysql設(shè)置枚舉字段
當(dāng)前鏈接:http://chinadenli.net/article43/dsicdes.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化軟件開發(fā)移動網(wǎng)站建設(shè)營銷型網(wǎng)站建設(shè)靜態(tài)網(wǎng)站品牌網(wǎng)站建設(shè)

廣告

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

網(wǎng)站優(yōu)化排名