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

Postgres Chèn vào quy tắc xem với mệnh đề trả lại

Bạn tốt hơn nhiều nên sử dụng INSTEAD OF INSERT kích hoạt tại đây:

CREATE FUNCTION MyFuncName() RETURNS trigger AS $$
DECLARE
  id integer;
BEGIN
  INSERT INTO tableA (time) VALUES COALESCE(NEW.time, NOW()) RETURNING aPrimaryKey INTO id;
  INSERT INTO tableB (aPrimaryKey, someCol1) VALUES (id, NEW.someValue);
  RETURN NEW;
END; $$ LANGUAGE PLPGSQL;

CREATE TRIGGER MyView_on_insert INSTEAD OF INSERT ON MyView
  FOR EACH ROW EXECUTE PROCEDURE MyFuncName();

Kiểm tra giá trị hiện tại của một chuỗi để xem nội dung nào được chèn vào bảng khác là xấu, xấu thực tiễn. Ngay cả khi bạn đang ở đây trong một giao dịch duy nhất, đừng làm điều đó.

Bạn đang nhầm lẫn về vấn đề RETURNING thông tin, vì tôi cũng bối rối khi tôi đọc câu hỏi của bạn. Bên trong một hàm sử dụng INTO mệnh đề để điền các biến được khai báo cục bộ để giữ các giá trị bản ghi mà sau đó bạn có thể sử dụng trong các câu lệnh tiếp theo. Bên ngoài một chức năng, hãy sử dụng RETURNING như bạn làm trong đoạn mã cao nhất của mình.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sự cố khi truy xuất bản ghi có mảng trống

  2. Làm thế nào để kiểm tra mục crontab?

  3. Cột 'mary' không tồn tại

  4. làm thế nào để có được lựa chọn được phân trang trên slick + postgresql

  5. OperationalError:con trỏ _django_curs_ <id> không tồn tại