Eu não quero uma função ou qualquer coisa. Eu só quero executar/testar um script simples com alguns recursos PL/pgSQL nele. Algo como o seguinte:
IF 1=1 THEN
SELECT concat('Hello', 'World');
END IF;
Tenho certeza de que a sintaxe está correta, mas não funciona no "Editor de consultas" normal como faria no Microsoft SQL Server. Estou tendo o erro a seguir:
[Err] ERROR: syntax error at or near "IF"
LINE 1: IF 1=1 THEN
^
Estou executando o Navicat para PostgreSQL versão 11.1.13 (64 bits) em uma máquina Windows 10. select version()
diz o seguinte:
PostgreSQL 9.4.4 on x86_64-unknown-linux-gnu, compiled by gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2, 64-bit
editar:
Acabei de perceber que essa pergunta pode ser vítima do problema XY. O que eu realmente quero fazer é testar a seguinte forma de inserir valores ignorando duplicatas:
BEGIN
INSERT INTO db_table (tbl_column) VALUES (v_tbl_column);
EXCEPTION WHEN unique_violation THEN
-- Ignore duplicate inserts.
END;
Encontrei aqui: Maneira ideal de ignorar inserções duplicadas?
Estou tendo o erro a seguir:
[Err] ERROR: syntax error at or near "INSERT"
LINE 2: INSERT INTO db_table (tbl_column) VALUES ('test');
^
Você não pode usar IF fora do código do procedimento, mas sua construção pode ser executada assim