gpt4 book ai didi

hibernate - 使用 H2 的 SQL 语句中的语法错误

转载 作者:行者123 更新时间:2023-12-02 05:33:31 26 4
gpt4 key购买 nike

我在 H2 数据库中执行一些 sql 语句时出错。
这些 sql 语句来自 Hibernate SchemaExport :
以下是sql语句:

create table CONTACTS (
person_id bigint not null,
contact_id bigint not null,
primary key (person_id, contact_id)
)

create table PERSON (
id bigint generated by default as identity,
FNAME varchar(55),
NAME varchar(55),
primary key (id)
)

alter table CONTACTS
add constraint UK_r5plahp7wqcsd47hscckyrxgd unique (contact_id)

alter table CONTACTS
add constraint FK_r5plahp7wqcsd47hscckyrxgd
foreign key (contact_id)
references PERSON

alter table CONTACTS
add constraint FK_90n1kse999lanaepr0v6hcgtv
foreign key (person_id)
references PERSON

例如,此行不会在 H2 中执行。

错误说: [ERROR] Caused by org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement : CREATE TABLE CONTACTS ( .... <<The same code from above>>
如何让这个 SQL 语句在 H2 中运行。

最佳答案

我终于找到了语法错误的原因。

我实际上正在运行 SchemaExport/SchemaUpdate使用 Hibernate,我没有在 SQL 语句中指定分隔符。

要指定分隔符,请使用 setDelimiter方法。例如,

export.setDelimiter(";");
update.setDelimiter(";");

顺便说一句,用SQL语句识别H2中的语法错误,找到 *在语句中,它会给出你的错误行。

关于hibernate - 使用 H2 的 SQL 语句中的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17174543/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com