为啥我不能在我的 H2 数据库中创建表?

Posted

技术标签:

【中文标题】为啥我不能在我的 H2 数据库中创建表?【英文标题】:Why I can't create a table in my H2 database?为什么我不能在我的 H2 数据库中创建表? 【发布时间】:2017-02-03 14:17:45 【问题描述】:

我最近开始使用 H2 数据库,我必须创建一个具有指向不同表中主键的外键的表。但是,我收到一个错误:

SYNTAX_ERROR_2 = 42001

第一个表的代码是这样的:

CREATE TABLE CARMODEL
(
MODEL_ID IDENTITY PRIMARY KEY,
MAKE VARCHAR(20),
MODEL VARCHAR(20),
) 

我遇到问题的表的代码是这样的:

CREATE TABLE CAR
(
CAR_ID  IDENTITY PRIMARY KEY,
MODEL_ID FOREIGN KEY REFERENCES CARMODEL(MODEL_ID),
YEAR INT,
COLOR VARCHAR(10);
)

【问题讨论】:

也许COLOR VARCHAR(10);旁边的分号应该是逗号? 不是这样的。我试过了,还是不行。 【参考方案1】:

尝试更改表并稍后创建约束。

ALTER TABLE CAR
    ADD FOREIGN KEY (MODEL_ID) 
    REFERENCES CARMODEL(MODEL_ID);

【讨论】:

@cskarche96 不客气,如果有效,请检查已回答按钮。所以其他人也知道。

以上是关于为啥我不能在我的 H2 数据库中创建表?的主要内容,如果未能解决你的问题,请参考以下文章

尝试在 H2 数据库中创建表时出现 Liquibase 错误

无法使用 JPA 在 H2 中创建表和加载数据

使用 SELECT ... INTO 在 SQL Server 中创建表

postgres:从命令行在数据库中创建表

在 Spring Boot 中创建外键 - H2 数据库

在数据库'master'中创建表权限被拒绝