MySQL中ENMU和SET的使用
因為MySQL不支援傳統的CHECK約束,因此通過ENUM和SET型別可以解決一部分問題。
下面通過一個小demo來演示一下
ENUM
drop table if EXISTS test;
create table test(
user varchar(30),
sex enum('male','female')
)ENGINE=INNODB;
insert into test select 'haha1','male';
insert into test select 'haha2','female';
insert into test select 'haha3','nofemal';
執行上面的語句,執行到最後一行sql語句的時候報錯
因為“haha3”中的sex值不是male和female的其中之一。
SET
drop table if EXISTS test2;
create table test2(
user varchar(30),
sex SET('male','female')
)ENGINE=INNODB;
insert into test2 select 'haha1','male';
insert into test2 select 'haha2','female';
insert into test2 select 'haha3','nofemal';
執行上面的sql語句也是到最後一行報錯
原因也是因為’nofemal’不是他們其中的’male’和’female’不是其中的任何一個。
注意:
ENUM和SET型別都是集合型別,不同的是ENUM型別最多可列舉65535個元素,而SET型別最多列舉64個元素。且set中可以存set列舉中的組合,比如執行
insert into test2 select ‘haha4’,’ 'male', 'female'’;
也可以成功。
相關文章
- mysql 中set和enum的區別MySql
- Redis 中的 set 和 sorted set 如何使用,原始碼實現分析Redis原始碼
- JavaScript中的new map()和new set()使用詳細(new map()和new set()的區別)JavaScript
- Vue中的$set的使用Vue
- MySQL 裡的 find_in_set () 和 in () 和 likeMySql
- MySQL中UPDATE語句裡SET後使用AND的執行過程和結果分析MySql
- javascript中的Map和SetJavaScript
- mysql find_in_set()函式的使用MySql函式
- 相容MySQL中的find_in_set函式MySql函式
- protobuf 中的巢狀訊息的使用 主要對set_allocated_和mutable_的使用巢狀
- postgresql和mysql中的limit使用方法MySqlMIT
- Redis 中 set 和 hset 有什麼不同,各自使用場景Redis
- java中list、set和map 的區別(轉)Java
- Vue.set與vue.$set的使用Vue
- c#物件導向中的get和set的用法C#物件
- Python列表中set函式的使用方法!Python函式
- Docker中mysql映象的使用和外網訪問DockerMySql
- vue中$set的使用(結合在實際應用中遇到的坑)Vue
- 關於MySQL中的8個 character_set 變數說明MySql變數
- alter system set event和set events的區別
- lsnrctl中,SET PASSWORD和CHANGE_PASSWORD命令
- MySQL中union和order by同時使用的實現方法MySql
- Python中set的用法Python
- shell中set指令的用法
- mysql中!=和is not的區別MySql
- mysql中“ ‘ “和 “ ` “的區別MySql
- MySQL字符集和校對規則(character set & collation)MySql
- mysql中case when的使用MySql
- MySQL中變數的定義和變數的賦值使用MySql變數賦值
- MySQL update ...set後的and寫法的邏輯MySql
- Windows中的程式的Working Set,Private Bytes和Virtual BytesWindows
- MySQL中的事務和MVCCMySqlMVC
- mysql中\G和\g的作用MySql
- MySQL中的redo log和checkpointMySql
- MySQL中explain語句的使用MySqlAI
- python中的list,tuple,set和dict(參考python文件)Python
- C#中類的屬性訪問器--get和set分析C#
- java原始碼研究--List中的set和add方法區別Java原始碼