兼容MySQL的enum类型
关键字:
KingbaseES、enum、人大金仓
1、兼容MySQL的DDL语句
1.kingbaseES在本次特性之前,创建枚举类型的语句如下:
create type type1 as enum('ab','cd','dasda','drtr'); |
2.本次新特性
(1)创建语句
当enum字段声明为非空且未指定default值时,默认将enum类型的第一个成员值作为其default值。创建成功后在非严格模式下插入非成员值时,内部将值转为空串插入表内。
CREATE TABLE tbl(...,col ENUM(‘val1’,’val2’…,…)[NAMES typname],…); |
例子:
(2)修改语句
●添加enum列
ALTER TABLE TBL ADD [COLUMN] col ENUM(‘val1’,’val2’,…) […,column_constraint] ] |
●修改enum列
ALTER TABLE tbl MODIFY [COLUMN] colname datatype ... ALTER TABLE tbl MODIFY [COLUMN] colname ENUM(‘val1’,’val2’,…) ... ALTER TABLE tbl CHANGE[COLUMN] colname newcolname ENUM(‘val1’,’val2’,…) ... |
●删除enum列
删除enum列后,列上对应的enum类型随之删除。
ALTER TABLE tbl DROP [COLUMN] col |
(3)删除语句行为
删除表后表内创建的enum类型随之被删除。
DROP TABLE tb1; |
2、ENUM所支持的谓词
1.IS NULL
2. IS NOT NULL
3. ISNULL
4. IS NAN
5. IS NOT NAN
6. IS INFINITE
7. IS NOT INFINITE
8. NOTNULL
9. IS TRUE
10. IS NOT TRUE
11. IS FALSE
12. IS NOT FALSE
13. IS UNKNOWN
14. IS NOT UNKNOWN
15. BETWEEN... AND...
16. NOT BETWEEN...AND..
17. BETWEEN SYMMETRIC...AND...
18. NOT BETWEEN SYMMETRIC...AND...
19. IS DISTINCT FROM
20. IS NOT DISTINCT FROM