使用 dbeaver 工具,我想在不实际运行脚本的情况下检查脚本是否存在语法错误。
目的:用于长插入查询(postgresql 语法,PostgreSQL 10.15),形式为:
INSERT INTO schema1.table1
(t1_id, fk1_id, fk_2_id, col1, col2)
VALUES
(nextval('schema1.sq_table1'),fk1_id_1,fk1_id_2,col1_val_1,col1_val_2),
-- etc, literally thousands of lines
我无法在非生产区域中运行查询的生产版本,因为外键不同。
那么有没有办法只检查 SQL 的语法而不运行它。(它会在非生产区域引发外键约束错误,所以我(验证语法,但我想加倍确定。
根据下面的评论,我认为对于这里的情况(插入外键),外键违规错误会验证语法,但仍然存在一般情况:是否可以验证 SQL 的语法查询而不实际运行它?我认为可能有几种情况这会很有用。
如果您解释您的查询,它会被编译但不会被执行。这意味着它会检查语法错误,但不会针对您的数据验证约束。
请注意,约束可能会影响编译器。如果你还没有读过它,这里有 Lucas Eder 的一篇很好的文章来讨论这个问题。