Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Oracle - Cara memaksa pengguna untuk INSERT beberapa baris

Dengan kata pengantar standar bahwa ini bukan bagaimana Anda benar-benar melakukan hal semacam ini di dunia nyata...

Anda secara realistis perlu menggunakan pemicu tingkat pernyataan di sini. Jika Anda tidak keberatan dengan kinerja memeriksa setiap kamar setiap saat

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;

Jika Anda tidak ingin memeriksa ini untuk setiap kamar setiap saat, Anda memerlukan paket dengan koleksi rid nilai, pemicu pernyataan sebelumnya yang menginisialisasi koleksi, dan pemicu tingkat baris yang menambahkan :new.rid nilai untuk koleksi. Pemicu pernyataan setelah Anda kemudian akan mengulangi elemen dalam koleksi dan memeriksa jumlah orang hanya di ruangan tersebut.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bandingkan gambar BLOB dengan gambar yang disimpan sebagai ORDImage menggunakan SQL/MM Still Image

  2. Fungsi String Oracle (Daftar Lengkap)

  3. Bagaimana membuat nol sama dengan nol di Oracle

  4. Kesalahan saat menggunakan fungsi DBMS_CRYPTO untuk mendekripsi data CLOB

  5. Bagaimana cara membuat pivot dinamis dengan tanggal dan kolom lain di Oracle?