java - 如何替换 H2 数据库中的枚举类型?

标签 java mysql h2

MySQL 方言:

CREATE TABLE My_Table ( my_column enum ('first', 'second', ... 'last'));

H2方言:

CREATE TABLE My_Table ( my_column ? ('first', 'second', ... 'last'));

什么类型在 H2 中也等同于 MySQL 的 enum 类型?

最佳答案

我不确定这是否是您要查找的内容,但您可以使用检查约束:

CREATE TABLE My_Table(my_column varchar(255) 
    check (my_column in ('first', 'second', 'last')));

-- fails:
insert into My_Table values('x');

-- ok:
insert into My_Table values('first');

这适用于 H2、Apache Derby、PostgreSQL、HSQLDB,甚至 SQLite。我没有测试其他数据库。

关于java - 如何替换 H2 数据库中的枚举类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9361227/

相关文章:

java - 车牌厂

java - Java 对象的参数验证

mysql - Grafana世界地图面板: latitude and longitude in mysql cannot display points on map

database - 从 1.4.200 升级 H2 版本 2.0.202

java.net.ConnectException : Connection refused: connect: localhost 异常

java - 如何使用 H2 在 JPA 中运行导入的 sql 脚本?

java - Eclipse:以编程方式创建首选项页面

具有进度状态的 Java/Spring 线程

php - 关于重复键更新所有新数据 PHP MySQL

mysql - 带有/计算数据的自连接 SQL 语句