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

Số tiền kiểm tra kích hoạt Postgres trước khi xóa

Bạn có thể đạt được điều đó với trình kích hoạt cấp câu lệnh SAU KHI XÓA. Bên trong hàm kích hoạt, bạn có thể đếm số hàng bị ảnh hưởng và đưa ra một ngoại lệ nếu số lượng quá cao. Ngoại lệ sẽ buộc khôi phục giao dịch đã bắt đầu xóa.

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;

Và sau đó tạo trình kích hoạt:

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. Sử dụng docker-soạn để tạo bảng trong cơ sở dữ liệu postgresql

  2. Cách Trunc () hoạt động trong PostgreSQL

  3. Đảo ngược tọa độ trong cột đa giác PostgreSQL

  4. Làm cách nào để truy vấn các mảng lồng nhau trong một cột postgres json?

  5. Tham số kết nối PDO TCP Keep-Alive