我有一些脚本正在使用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语法不正确。这怎么可能?
1条答案
按热度按时间h5qlskok1#
mysql是一个数据库,h2是另一个数据库。
它们的sql语法都不同。
世上没有
CREATE SQL SECURITY INVOKER VIEW ...
在h2中。见h2文件。