PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Ngoại lệ tùy chỉnh PostgreSQL?

Không, không phải như thế này. Nhưng bạn có thể nêu ra và duy trì các trường hợp ngoại lệ của riêng mình, không vấn đề gì:

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

Ngoài ra, bạn cũng có thể mã hóa chúng trong quy trình của mình, điều đó tùy thuộc vào bạn.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để làm việc với các bảng không có KHÓA CHÍNH trong chế độ Hibernate?

  2. postgresql cài đặt instace đơn

  3. PostgreSQL:chèn từ bảng khác

  4. Thay đổi / đặt lại mật khẩu người dùng postgresql trên Windows 7

  5. lỗi mã hóa postgres trong ứng dụng sidekiq