gpt4 book ai didi

spring - JdbcSQLException 在 H2 中使用 'MATCH simple' 执行 PostgreSQL 查询

转载 作者:行者123 更新时间:2023-11-29 12:11:32 33 4
gpt4 key购买 nike

我正在尝试以开发模式(使用 H2)运行当前在生产环境中使用 PostgreSQL 数据库的设置,但出现错误。如果我可以在不进行任何更改的情况下重用生产 SQL,那将是最好的。

使用此设置:

# H2 Database
spring.datasource.datasource-class-name=org.h2.jdbcx.JdbcDataSource
spring.datasource.url=jdbc:h2:mem:userregistry;DB_CLOSE_DELAY=-1;MODE=PostgreSQL

这个查询:

CREATE TABLE IF NOT EXISTS users.user_userrole (
user_signum VARCHAR(20) NOT NULL,
role VARCHAR(255) NOT NULL,
CONSTRAINT user_userrole_pk PRIMARY KEY (user_signum, role),
CONSTRAINT user_fk FOREIGN KEY (user_signum) REFERENCES users.user (signum) MATCH SIMPLE,
CONSTRAINT role_fk FOREIGN KEY (role) REFERENCES users.userrole
(role_name) MATCH SIMPLE
);

引发此异常:

org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement "<<SQL OMITTED FOR BREVITY>>"; 
expected "INDEX, ON, NOT, DEFERRABLE, NOCHECK, CHECK, ,, )"; [42001-185]

请注意,我已经在使用 Mode=PostgreSQL。有什么想法吗?

谢谢

最佳答案

H2 数据库不支持MATCH SIMPLE(与Oracle、MS SQL Server、Apache Derby 相同)。

关于spring - JdbcSQLException 在 H2 中使用 'MATCH simple' 执行 PostgreSQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32312990/

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