Search code examples
databasepostgresqlloopsplpgsqlbreak

BREAK statement in PL/pgSQL


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?


Solution

  • 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: