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

Oracle - Cách buộc người dùng CHÈN nhiều hàng

Với lời nói đầu tiêu chuẩn rằng đây không phải là cách bạn thực sự sẽ làm điều này trong thế giới thực ...

Thực tế, bạn sẽ cần sử dụng trình kích hoạt cấp câu lệnh tại đây. Nếu bạn không bận tâm về hiệu suất của việc kiểm tra mọi phòng mọi lúc

CREATE OR REPLACE TRIGGER Living_AIUD
  AFTER INSERT OR UPDATE OR DELETE
  ON Living
DECLARE
  Count NUMBER;
BEGIN
  FOR x IN (SELECT rid, count(*) cnt
              FROM living
             GROUP BY rid
            HAVING COUNT(*) < 3)
  LOOP
    RAISE_APPLICATION_ERROR(-20002, 'Too few people in room ' || x.rid);
  END LOOP;
END Living_AIUD;

Nếu bạn không muốn kiểm tra thông tin này cho mọi phòng mỗi lần, bạn cần một gói có bộ sưu tập rid giá trị, trình kích hoạt câu lệnh trước khởi tạo bộ sưu tập và trình kích hoạt cấp hàng đã thêm :new.rid giá trị của bộ sưu tập. Sau đó, trình kích hoạt câu lệnh sau của bạn sẽ lặp lại các phần tử trong bộ sưu tập và kiểm tra số lượng người chỉ trong các phòng đó.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. BadImageFormatException. Điều này sẽ xảy ra khi chạy ở chế độ 64 bit với các thành phần máy khách Oracle 32 bit được cài đặt

  2. Sự khác biệt giữa SELECT DISTINCT và SELECT UNIQUE

  3. ORA-01460:yêu cầu chuyển đổi chưa thực hiện được hoặc không hợp lý

  4. Làm thế nào để xác định ngôn ngữ (tiếng Anh, tiếng Trung ...) của một chuỗi đã cho trong Oracle?

  5. Chia địa chỉ IPv4 thành 4 số trong Oracle sql