Usando a ferramenta dbeaver, quero verificar um script quanto a erros de sintaxe sem realmente executá-lo.
Objetivo: Para uma consulta de inserção longa (sintaxe postgresql, PostgreSQL 10.15) na forma de:
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
Não consigo executar a versão prod da consulta em uma região não prod, porque as chaves estrangeiras são diferentes.
Então, existe uma maneira de apenas verificar a sintaxe do SQL sem executá-lo. (Ele lança erros de restrição de chave estrangeira na região não-prod, então eu ( que verifica a sintaxe, mas gostaria de ter certeza dupla.
Conforme comentário abaixo, acho que para o caso aqui (inserir com chave estrangeira), um erro de violação de chave estrangeira verificaria a sintaxe, mas ainda existe o caso geral: É possível verificar a sintaxe do SQL consulta sem realmente executá-lo ? Eu acho que provavelmente existem vários casos em que isso seria útil.
Se você explicar sua consulta, ela será compilada, mas não executada. Isso significa que ele é verificado quanto a erros sintáticos, mas as restrições não são validadas em relação aos seus dados.
Observe que as restrições podem influenciar o compilador. Caso você não tenha lido, há um bom artigo de Lucas Eder aqui que discute isso.