此SQL:
CREATE TABLE product_ (
pkey_ UUID PRIMARY KEY
) ;
…成功创建了一个表。
但是我希望新行默认为RANDOM_UUID()
上显示的this Answer生成的UUId。
CREATE TABLE product_ (
pkey_ UUID PRIMARY KEY DEFAULT RANDOM_UUID()
) ;
但这失败并显示错误:
org.h2.jdbc.JdbcSQLException:SQL语句“ CREATE TABLE PRODUCT_( PKEY_ UUID主键默认值[*] RANDOM_UUID() ); ;“;预期为“ HASH,AUTO_INCREMENT,NOT,NULL,CHECK,REFERENCES 、、、”); SQL语句:
此错误的原因和解决方法是什么?
答案 0 :(得分:0)
参数出现的顺序很重要。
如您在Column Definition的文档中所见,语法图显示DEFAULT
必须出现在PRIMARY KEY
之前。交换这两个部分即可修复。
CREATE TABLE product_ (
pkey_ UUID DEFAULT RANDOM_UUID() PRIMARY KEY
) ;