I’ve having trouble to do a if with select, e.g:
In SQL Server I can do this:
x
IF NOT EXISTS (SELECT 1 FROM mytable where "name" = 'myname')
BEGIN
/*Do something*/
END
GO
But in postgresql I don’t have any idea how handle this. I’ve tring some ways to do this, but unfortunately I have not success.
Advertisement
Answer
The syntax for an IF
in Postgres (or rather PL/pgSQL) is IF ... THEN ... END IF;
, so you can use the one you have and replace BEGIN
with THEN
and END
with END IF;
. Remove the GO
.
IF NOT EXISTS (SELECT *
FROM mytable
WHERE name = 'myname') THEN
END IF;
If that code piece is embedded in any PL/pgSQL function, procedure, etc. that’s it. If not, i.e. you want to execute it ad hoc, you need to enclose it in a DO
block.
DO
$$
BEGIN
IF NOT EXISTS (SELECT *
FROM mytable
WHERE name = 'myname') THEN
END IF;
END;
$$
LANGUAGE plpgsql;