mysql中enum型別怎麼設定

2022-03-20 17:54:46 字數 5773 閱讀 5956

1樓:baby_原來

從 mysql 3.23.51 開始,當表被建立時,enum 值尾部的空格將會自動刪除。

當為一個 enum 列賦值時,字母的大小寫是無關緊要的。然而,以後從列中檢索出來的值的大小寫卻是匹配於建立表時所指定的允許值。

如果在一個數字語境中檢索一個enum,列值的索引值將被返回。例如,可以像這樣使用數字值檢索一個 enum 列:

mysql> select enum_col+0 from tbl_name;

如果將一個數字儲存到一個 enum 中,數字被當作為一個索引值,並且儲存的值是該索引值所對應的列舉成員。(但是,這在 load data 將不能工作,因為它視所有的輸入均為字串。) 在一個enum 字串中儲存數字是不明智的,因為它可能會打亂思維。

enum 值依照列規格說明中的列表順序進行排序。(換句話說,enum 值依照它們的索引號排序。)舉例來說,對於 enum("a", "b") "a" 排在 "b" 後,但是對於 enum("b", "a") , "b" 卻排在 "a"之前。

空字串排在非空字串前,null 值排在其它所有的列舉值前。為了防止意想不到的結果,建議依照字母的順序定義 enum 列表。也可以通過使用 group by concat(col) 來確定該以字母順序排序而不是以索引值。

如果希望得到一個 enum 列的所有可能值,可以使用 show columns from table_name like enum_colum

2樓:愛可生雲資料庫

根據使用者定義的列舉值與分片節點對映檔案,直接定位目標分片。

使用者在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 中,可配置項為 、和

【配置項】2. 在 rule.xml 中配置 標籤,非必須配置項,不配置該項的話,使用者的分片索引值沒落在 mapfile 定義的範圍時,dble 會報錯;若需要配置,必須為非負整數,使用者的分片索引值沒落在 mapfile 定義的範圍時,dble 會路由至這個值的 mysql 分片

【配置項】3. 在 rule.xml 中配置 標籤,範圍對映檔案的路徑:

若在對映檔案在 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 中配置 標籤;type 必須為整型;取值為 0 時,mapfile 的《列舉值》必須為整型;取值為非 0 時,mapfile 的《列舉值》可以是任意字元(除了=和換行符)

3樓:創作者

`aa` enum('a','b')

mysql怎麼獲取資料表欄位enum型別的預設值

4樓:出訪波

enum有優點。但個人覺得。。。缺點更多,客觀的講:

優點主要是在建資料 庫的時候就可以把一些值給規範好。缺點是。。enum不適合php。

主要是php是弱型別,如:你insert into ..... set a= 1,你沒法知道你是想 a= '1' 還是 a= 1(a='1'是插入值1,a=1是插入enum的第一個值,尤其php弱型別的,如果int的,很少有人在sql里加雙引號。

),這是php和mysql 在使用enum 最大的問題。所以。。安心點啦。

乾脆點直接tinyin

5樓:愛可生雲資料庫

根據使用者定義的列舉值與分片節點對映檔案,直接定位目標分片。

使用者在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 中,可配置項為 、和

【配置項】2. 在 rule.xml 中配置 標籤,非必須配置項,不配置該項的話,使用者的分片索引值沒落在 mapfile 定義的範圍時,dble 會報錯;若需要配置,必須為非負整數,使用者的分片索引值沒落在 mapfile 定義的範圍時,dble 會路由至這個值的 mysql 分片

【配置項】3. 在 rule.xml 中配置 標籤,範圍對映檔案的路徑:

若在對映檔案在 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 中配置 標籤;type 必須為整型;取值為 0 時,mapfile 的《列舉值》必須為整型;取值為非 0 時,mapfile 的《列舉值》可以是任意字元(除了=和換行符)

mysql enum 對應mybatis什麼型別

6樓:半藍

string型別,enum可以自定義型別,常用的是0,1,也可以定義為boy,girl,secret,這麼說理解了為什麼是string吧

怎麼拿到mysql一張表裡某enum型別欄位的所有值

7樓:渡沙津

select distinct(欄位名) from 表名

8樓:二木頭上的燕子

select 欄位名 from 表名,然後遍歷,

9樓:聲聲思妤

show columns from table_name like enum_column_name

10樓:愛可生雲資料庫

根據使用者定義的列舉值與分片節點對映檔案,直接定位目標分片。

使用者在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 中,可配置項為 、和

【配置項】2. 在 rule.xml 中配置 標籤,非必須配置項,不配置該項的話,使用者的分片索引值沒落在 mapfile 定義的範圍時,dble 會報錯;若需要配置,必須為非負整數,使用者的分片索引值沒落在 mapfile 定義的範圍時,dble 會路由至這個值的 mysql 分片

【配置項】3. 在 rule.xml 中配置 標籤,範圍對映檔案的路徑:

若在對映檔案在 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 中配置 標籤;type 必須為整型;取值為 0 時,mapfile 的《列舉值》必須為整型;取值為非 0 時,mapfile 的《列舉值》可以是任意字元(除了=和換行符)

mysql中的資料型別varchar 255 表示什麼意思

char是一種固定長度的型別,varchar則是一種可變長度的型別,它們的區別是 char m 型別的資料列裡,每個值都佔用m個位元組,如果某個長度小於m,mysql就會在它的右邊用空格字元補足 在檢索操作中那些填補出來的空格字元將被去掉 在varchar m 型別的資料列裡,每個值只佔用剛好夠用的...

mysql中怎麼解決關於ROW

mysql中的row count 可以返回前一個sql進行update,delete,insert操作所影響的行數。mysql上的測試 資料庫版本為 5.1.22 1.建立資料庫表 如下 create table t id int,name varchar 50 address varchar 10...

mysql中怎麼檢視當前在哪個庫中

講解的是mysql資料庫中儲存引擎的知識,使用命令的方式檢視當前資料庫伺服器用的什麼儲存引擎。本 的目的在於一方面學習熟悉命令,另一方面為後續的學習儲存引擎知識做鋪墊。在mysql中怎麼樣檢視所在的資料庫名 可以使用這兩種方式檢視資料庫名 1 用select database 語句 2 用statu...