PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Niestandardowe wyjątki PostgreSQL?

Nie, nie w ten sposób. Ale możesz zgłaszać i utrzymywać własne wyjątki, nie ma problemu:

CREATE TABLE exceptions(
    id serial primary key,
    MESSAGE text, 
    DETAIL text, 
    HINT text, 
    ERRCODE text
);

INSERT INTO exceptions (message, detail, hint, errcode) VALUES ('wrong', 'really wrong!', 'fix this problem', 'P0000');

CREATE OR REPLACE FUNCTION foo() RETURNS int LANGUAGE plpgsql AS
$$
DECLARE
    row record;
BEGIN
    PERFORM * FROM fox; -- does not exist, undefined_table, fail

    EXCEPTION
        WHEN undefined_table THEN
            SELECT * INTO row FROM exceptions WHERE id = 1; -- get your exception
            RAISE EXCEPTION USING MESSAGE = row.message, DETAIL = row.detail, HINT = row.hint, ERRCODE = row.errcode;

    RETURN 1;
END;
$$

SELECT foo();

Oczywiście możesz je również zakodować na stałe w swoich procedurach, to zależy od Ciebie.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. wyszukiwanie tekstowe postgres

  2. Postgres:wyczyść całą bazę danych przed ponownym utworzeniem / ponownym wypełnieniem ze skryptu bash

  3. Pobierz rekordy, w których klucz kolumny json ma wartość null

  4. PG::Błąd w klauzuli GROUP BY

  5. Przed i po wyzwoleniu tego samego zdarzenia? Wypełnij tabelę podrzędną PostgreSQL