JdbcSQLException 在 H2 中使用 'MATCH simple' 执行 PostgreSQL 查询
JdbcSQLException executing PostgreSQL query with 'MATCH simple' in H2
我正在尝试 运行 在开发模式(使用 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)
我正在尝试 运行 在开发模式(使用 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)