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

(Postgresql) membuat fungsi pemicu tabel memasukkan nilai ID dari baris yang diubah ke dalam tabel log, untuk replikasi khusus

Saya dapat mengatasi ini dengan mengubah AFTER ke BEFORE di pemicu, yang saya yakini pada awalnya tidak akan berhasil, atau:

    CREATE OR REPLACE FUNCTION Insert() RETURNS TRIGGER AS $ReplInsert$
    BEGIN
        IF (TG_OP = 'DELETE') THEN
            INSERT INTO "log" ("Operation","ID","NAME")
    VALUES ('DELETE', OLD.ID, OLD.NAME);
            RETURN OLD;
        ELSIF (TG_OP = 'UPDATE') THEN
            INSERT INTO "log" ("Operation","ID","NAME")
    VALUES ('UPDATE', NEW.ID ,NEW.NAME);
            RETURN NEW;
        ELSIF (TG_OP = 'INSERT') THEN
            INSERT INTO "log" ("Operation","ID","NAME")
    VALUES ('UPDATE', NEW.ID , NEW.NAME);
            RETURN NEW;
        END IF;
        RETURN NULL; 
    END;
$ReplInsert$ LANGUAGE plpgsql;

CREATE TRIGGER logTrg
BEFORE INSERT OR UPDATE OR DELETE ON "FIRST_NAME"
    FOR EACH ROW EXECUTE PROCEDURE Insert();



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Fungsi membutuhkan waktu lama untuk dijalankan untuk sejumlah besar catatan

  2. Postgres - Bagaimana cara mengubah baris dengan rentang int menjadi baris perantara dari nilai individual dari rentang itu?

  3. Fungsi PostgreSQL yang ditentukan pengguna dalam dialek hibernasi melempar pengecualian

  4. Postgresql GROUP_CONCAT setara?

  5. Postgresql lolos dari kutipan tunggal di mana klausa