问题描述
我使用内存中的 HsqlDB 实例(2.5.1 版)进行 Java 单元测试。实例已启用 MysqL 兼容模式。以下 create 语句有效:
CREATE TABLE people
(
is_subscribed enum('y','n') NOT NULL
)
CREATE TABLE people
(
is_subscribed enum('y','n') DEFAULT 'n' NOT NULL
)
我收到以下错误消息:
java.sql.sqlSyntaxErrorException: unexpected token: DEFAULT : line: 3 in statement [CREATE TABLE people
有没有办法为枚举类型指定默认值?
解决方法
HSQLDB 2.5.1 之前的版本不直接支持 MySQL ENUM 声明的 DEFAULT 子句。这可能会在以后的版本中得到支持。
您可以在创建表后添加 DEFAULT。使用:
ALTER TABLE people ALTER COLUMN is_subscribed SET DEFAULT 'n'
更新:现在最新代码支持此功能。您可以查看代码并构建 jar。该更新将出现在下一个版本中。