PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Pengecualian khusus PostgreSQL?

Tidak, tidak seperti ini. Tetapi Anda dapat mengajukan dan mempertahankan pengecualian Anda sendiri, tidak masalah:

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();

Tentu saja Anda juga dapat membuatnya dikodekan dalam prosedur Anda, itu terserah Anda.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. subquery di FROM harus memiliki alias

  2. PostgreSQL DATEADD() Setara

  3. bagaimana cara menyalin data dari file ke PostgreSQL menggunakan JDBC?

  4. pg_ctl:kesalahan saat memuat pustaka bersama:libpq.so.5

  5. sql pilih tanggal paling awal untuk beberapa baris