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

MENGEMBALIKAN data dari tampilan yang dapat diperbarui tidak berfungsi?

Anda sangat dekat;) Anda hanya perlu memperbarui NEW.id di pemicu Anda.

CREATE FUNCTION t0ii_person_details() RETURNS trigger AS $$
DECLARE
  addr  integer;
BEGIN
  -- Want at least a town to insert anything into table address.
  IF (NEW.town IS NOT NULL) THEN
    INSERT INTO address(street, town)
      VALUES (NEW.street, NEW.town)
      RETURNING id INTO addr;
  ELSE
    addr := NULL;
  END IF;

  INSERT INTO person(first_name, family_name, address)
    VALUES (NEW.first_name, NEW.family_name, addr) 
    -- here is the only change I made
    RETURNING id INTO NEW.id;
  RETURN NEW;
END; $$ LANGUAGE plpgsql SECURITY DEFINER;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lembar Cheat Konfigurasi PostgreSQL

  2. Apa yang setara dengan timestamp/rowversion (SQL Server) dengan PostgreSQL?

  3. Pisahkan nilai yang dipisahkan koma ke dalam tabel target dengan jumlah kolom tetap

  4. Cara menggunakan kembali kolom hasil dalam ekspresi untuk kolom hasil lain

  5. Meningkatkan ke PostgreSQL13