mysql中我想用enum列舉幾個系的名字,但總是出現錯誤

時間 2022-09-22 19:20:56

1樓:匿名使用者

enum本身就是一種型別,不用再加varchar了,這樣寫

column 系別 enum('資訊管理','護理','法醫');

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 的《列舉值》可以是任意字元(除了=和換行符)

mysql中總用enum型別是不是不太好

3樓:汝英豪

你好通常的做法是資料庫不設限制,而是在ui層或是資料層進行限制。

4樓:愛可生雲資料庫

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

使用者在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型別怎麼設定

5樓: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

6樓:愛可生雲資料庫

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

使用者在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怎麼定義變數,mysql中如何定義變數

下面是乙個簡單的 儲存過程的例子.declare v index int 定義乙個 名稱為 v index 的變數,型別為 intmysql 變數定義應該只能在 儲存過程,函式裡面定義.不像 oracle sql server 乙個 begin end 裡面就可以定義 執行了。mysql delim...

關於mysql 的儲存過程,mysql中的儲存過程是什麼意思啊

修改結束符 delimiter create procedure.end delimiter 簡易用sqlyog,寫過程蠻好用的 mysql中的儲存過程是什麼意思啊 直白的講就是把sql語句進行封裝,然後留個介面,使用的時候直接呼叫介面。可以把對資料的各種處理寫在儲存過程裡 程式只需呼叫 或者 傳參...

我在Linux中編譯安裝了MYSQL,使用root可以連線,但是不能建立其他使用者

我記得test 是不包含localhost的,你可以試試mysql test h 本機ip u test p 其中本機ip不能是127.0.0.1 本機ip也不能是localhost,mysql應該在什麼位置限定了本機非root登入,我沒找到過 假設你的ip是1.2.3.4,應當輸入mysql te...

mysql中修改列名,如何將mysql的表名和列名轉換為大寫

alter table 表名 change abc def 列型別 比如 alter table testtb change name newname char alter table table name change abc def integer alter table name set ab...

mysql 函式中與oracle中ltrim函式功能相同的函

一 ansi字元函式 字元函式用於在sql裡以不同於儲存方式的格式來表示字串。串接就是把兩個單獨的字串組合為乙個。子串的概念就是從字串裡提取一部分。translate函式用於逐字元地把乙個字串變換為另乙個,它通常有3個引數 要被轉換的字串 要轉換的字元系列 代入字元的列表。二 常用字元函式 1 串接...