BREAK statement in PL/pgSQL

user1844840 picture user1844840 · Mar 2, 2013 · Viewed 32.2k times · Source

How to have the break statement in PostgreSQL? I have the structure like this:

for()
 {
 for()
 {
  if(somecondition)
  break;
 }
}

As per my understanding it should only break the inner for loop?

Answer

Erwin Brandstetter picture Erwin Brandstetter · Mar 2, 2013

There is no BREAK in PL/pgSQL.

EXIT terminates the loop.
CONTINUE continues at the next iteration of the loop.
You can attach a <<label>> to loops and add it as parameter to each of these commands. Then you terminate / continue the labeled loop. Else, it concerns the inner loop.
RETURN exits from the function (so not applicable in a DO statement).

All of this applies to procedural elements of PL/pgSQL, not SQL.
Code example using all three: