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

Jumlah cek pemicu postgres sebelum dihapus

Anda dapat mencapainya dengan pemicu tingkat pernyataan SETELAH DELETE. Di dalam fungsi pemicu, Anda dapat menghitung jumlah baris yang terpengaruh dan memberikan pengecualian jika hitungannya terlalu tinggi. Pengecualian akan memaksa pembatalan transaksi yang memulai penghapusan.

create function prevent_delete()
  returns trigger
as
$BODY$ 
declare
  l_count integer;
begin 
  select count(*)
    into l_count
  from old_table;

  if l_count > 5 then 
    raise exception 'Too many rows would be deleted';
  end if; 
  return null;
end; 
$BODY$ 
LANGUAGE plpgsql;

Dan kemudian buat pemicunya:

create trigger prevent_mass_delete 
   after delete on the_table
   referencing old table as old_table
   for each statement 
   execute procedure prevent_delete();



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara membuat indeks untuk elemen array di PostgreSQL?

  2. Rails bergabung dengan kueri

  3. Tanda kurung siku pada nama tabel/kolom tidak didukung?

  4. Iterasi melalui catatan PostgreSQL. Bagaimana cara mereferensikan data dari baris berikutnya?

  5. Menganalisis Statistik Tabel PostgreSQL