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

Tôi có thể sử dụng giá trị trả về của INSERT ... RETURNING trong một INSERT khác không?

Bạn có thể làm như vậy bắt đầu với Postgres 9.1:

with rows as (
INSERT INTO Table1 (name) VALUES ('a_title') RETURNING id
)
INSERT INTO Table2 (val)
SELECT id
FROM rows

Trong khi đó, nếu bạn chỉ quan tâm đến id, bạn có thể làm như vậy với trình kích hoạt:

create function t1_ins_into_t2()
  returns trigger
as $$
begin
  insert into table2 (val) values (new.id);
  return new;
end;
$$ language plpgsql;

create trigger t1_ins_into_t2
  after insert on table1
for each row
execute procedure t1_ins_into_t2();


  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 cách nào để ngăn Postgres nội dòng một truy vấn con?

  2. PostgreSQL chuyển đổi cột thành hàng? Dịch chuyển?

  3. Hàm thực thi nhanh hơn mà không có công cụ sửa đổi NGHIÊM TÚC?

  4. Thứ tự mảng_agg PostgreSQL

  5. Cách make_timestamptz () hoạt động trong PostgreSQL