MySQL中ENMU和SET的使用
2016-12-25 21:30
225 查看
因为MySQL不支持传统的CHECK约束,因此通过ENUM和SET类型可以解决一部分问题。
下面通过一个小demo来演示一下
执行上面的语句,执行到最后一行sql语句的时候报错
![](https://img-blog.csdn.net/20161225212810201?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWFzY2Y=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
因为“haha3”中的sex值不是male和female的其中之一。
执行上面的sql语句也是到最后一行报错
![](https://img-blog.csdn.net/20161225212911062?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWFzY2Y=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
原因也是因为’nofemal’不是他们其中的’male’和’female’不是其中的任何一个。
注意:
ENUM和SET类型都是集合类型,不同的是ENUM类型最多可枚举65535个元素,而SET类型最多枚举64个元素。且set中可以存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中的find_in_set的使用方法介绍
- Mysql中的find_in_set的使用方法
- mysql中的find_in_set的使用
- mysql中FIND_IN_SET的使用方法
- mysql中FIND_IN_SET的使用方法
- mysql 高版本jdbc驱动程序 使用PreparedStatement.setBinaryStream方法报错及解决办法
- MySQL 的 find_in_set 函数使用方法
- mysql中FIND_IN_SET的使用方法
- mysql 的 find_in_set,INSTR函数使用方法
- MySQL 中的 SET 与 ENUM 类型使用详解
- 正确使用MySQL JDBC setFetchSize()方法解决JDBC处理大结果集 java.lang.OutOfMemoryError: Java heap space
- 正确使用MySQL JDBC setFetchSize() setMaxRows()方法解决JDBC处理大结果集 java.lang.OutOfMemoryError: Java heap space
- Mysql中使用FIND_IN_SET解决IN条件为字符串时只有第一个数据可用的问题
- mysql中的find_in_set的使用
- Mysql中in和find_in_set的使用说明
- Mysql中的find_in_set的使用方法介绍
- MySQL之IN与FIND_IN_SET的使用
- mysql中 find_in_set()函数的使用
- [Mysql] find_in_set()使用注意
- mysql进阶:find_in_set的使用例子