【发布时间】:2021-01-26 23:23:27
【问题描述】:
我正在使用内存中的 HSQLDB 实例(版本 2.5.1)进行 Java 单元测试。实例启用了 MySQL 兼容模式。以下创建语句有效:
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
有没有办法为枚举类型指定默认值?
【问题讨论】:
-
你试过
NOT NULL DEFAULT 'n'吗?也就是说,只需颠倒列选项的顺序即可。 syntax doc 表明 DEFAULT 在 NOT NULL 之前,但它应该是一个快速测试来确认。 -
@BillKarwin 是的,我确实尝试过,但没有成功。正如你所说,文档要求首先放置 DEFAULT,如果顺序颠倒,HSQLDB 似乎会抛出异常。