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

Trên CHÈN vào bảng CHÈN dữ liệu trong các bảng được kết nối

pgAdmin chỉ là GUI. Ý bạn là PostgreSQL , RDBMS .

ràng buộc khóa ngoại , giống như bạn chỉ thực thi mà không có giá trị nào có thể được sử dụng, giá trị đó không có trong cột được tham chiếu. Bạn có thể sử dụng ON UPDATE CASCADE hoặc ON DELETE CASCADE để phổ biến các thay đổi từ cột được tham chiếu, nhưng bạn không thể tạo hàng mới với nó như bạn mô tả. Bạn đã chọn sai công cụ.

Những gì bạn mô tả có thể đạt được với trình kích hoạt . Một cách khác, phức tạp hơn sẽ là RULE . Đi với một trình kích hoạt ở đây.

Trong PostgreSQL, bạn cần có chức năng kích hoạt , chủ yếu sử dụng plpgsql trình kích hoạt trên bàn có sử dụng nó.

Một cái gì đó như:

CREATE OR REPLACE FUNCTION trg_insert_row_in_tbl2()
  RETURNS trigger AS
$func$
BEGIN
   INSERT INTO tbl2 (my_id, col1)
   VALUES (NEW.my_id, NEW.col1)     -- more columns?

   RETURN NEW;  -- doesn't matter much for AFTER trigger
END
$func$  LANGUAGE plpgsql;

Và một trình kích hoạt AFTER INSERT trên tbl1 :

CREATE TRIGGER insaft
AFTER INSERT ON tbl1
FOR EACH ROW EXECUTE PROCEDURE trg_insert_row_in_tbl2();


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tự động cộng gộp, nhưng bỏ qua các giá trị hiện có trong cột

  2. Không thể bỏ vai trò được cấp để kết nối cơ sở dữ liệu

  3. Bản ghi trả về từ hàm có các cột được nối với nhau

  4. Nhật ký JBoss Trình điều khiển Postgres không tuân thủ JDBC

  5. Thông báo các thay đổi của postgres đối với ứng dụng java