在带有intellij和h2的mysql中使用sql安全调用程序时出现jdbcsqlexception?

bogh5gae  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(224)

我有一些脚本正在使用sql安全调用器选项创建视图。
代码脚本如下所示:

CREATE SQL SECURITY INVOKER VIEW viewOne AS
SELECT
    m1.id,
    sio.source as finalStep
FROM stepIO sio JOIN step s ON(sio.step_id=s.id) JOIN 
medium m1 ON(m1.version=s.model_id) JOIN coefficient c 
ON(c.id=m1.id)
WHERE sio.direction='O' AND sio.source NOT IN (
SELECT
  idref
FROM stepIO sio JOIN step s ON(sio.step_id=s.id) JOIN 
medium m ON(m.version=s.model_id) JOIN coefficient c 
ON(c.id=m.id)
    WHERE c.belongs_to_container_id=1 and m1.model_name=m.model_name) AND 
c.belongs_to_container_id=1;

当我在intellij中运行测试时,我得到了这个错误。

org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement "

CREATE SQL[*] SECURITY INVOKER VIEW viewOne AS
//
//
c.belongs_to_container_id=1; "expected "OR, FORCE, VIEW, ALIAS, SEQUENCE, USER, TRIGGER, ROLE, SCHEMA, CONSTANT, DOMAIN, TYPE, DATATYPE, AGGREGATE, LINKED, MEMORY, CACHED, LOCAL, GLOBAL, TEMP, TEMPORARY, TABLE, PRIMARY, UNIQUE, HASH, SPATIAL, INDEX";

好像是在拒绝 SQL SECURITY INVOKER 因为sql语法不正确。这怎么可能?

h5qlskok

h5qlskok1#

mysql是一个数据库,h2是另一个数据库。
它们的sql语法都不同。
世上没有 CREATE SQL SECURITY INVOKER VIEW ... 在h2中。见h2文件。

相关问题