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

postgresql - pemicu, perbarui stempel waktu pada pembaruan lapangan

Selama Anda hanya membuat perubahan pada baris yang memicu pemicu, jauh lebih mudah (dan lebih murah) untuk menggunakan BEFORE UPDATE pemicu, yang dapat membuat perubahan pada new.complete_flag sebelum disimpan ke tabel, daripada harus menjalankan UPDATE pernyataan setelah itu sudah ada di sana.

Anda juga dapat membatasi pemicu untuk pembaruan bidang tertentu dengan UPDATE OF <column> klausa dari CREATE TRIGGER pernyataan.

Hasil akhirnya akan terlihat seperti ini:

CREATE FUNCTION completed_timestamp() RETURNS trigger AS $$
   LANGUAGE plpgsql
BEGIN
  IF new.complete_flag = 1 and old.completed_flag = 0 THEN
    new.complete_time := current_timestamp;
  END IF;
  RETURN new;
END;
$$;

CREATE TRIGGER update_timestamp
BEFORE UPDATE OF completed_flag ON tbl_pXXXX
FOR EACH ROW 
EXECUTE PROCEDURE completed_timestamp();



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara menemukan substring dalam SQL (Postgres)

  2. pgDash Alternatives - Pemantauan Database PostgreSQL dengan ClusterControl

  3. Bagaimana menerapkan Audit/versi Modifikasi Tabel di PostgreSQL

  4. Menginstal Orafce.sql 3.0 di Windows 7

  5. Hapus beberapa array secara paralel