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

vượt quá số lượng cấp SQL đệ quy tối đa (50)

Bạn đang thực hiện kích hoạt "trước khi chèn". Trong một trình kích hoạt như vậy, bạn không chèn vào cùng một bảng - nếu không, bạn có thể nhận được một vòng lặp vô hạn. Chỉ cần gán cho giá trị biến:

CREATE OR REPLACE TRIGGER trig_deptno2
BEFORE INSERT ON dept2
FOR EACH ROW
DECLARE v_deptno NUMBER(2) ;
BEGIN
    SELECT coalesce(MAX(deptno) + 1, 1) INTO :new.deptno
    FROM dept2 ;
END trig_deptno2 ;

Khi trình kích hoạt kết thúc, nó sẽ chèn các giá trị phù hợp từ new biến.

Hãy để tôi chỉ nói rằng các chuỗi tồn tại là có lý do, và bạn nên sử dụng chúng cho mục đích này. Việc cố gắng bắt chước chức năng của chúng có thể dẫn đến lỗi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Reader.Read () không thể đọc các hàng mặc dù nó có các hàng

  2. Oracle SQL - Cách lấy số lượng dựa trên ngày thành nhiều cột trong ORACLE

  3. Làm cách nào để kết nối với phiên bản Oracle docker

  4. Tuyên bố ORACLE IIF

  5. Tìm hiểu ngày thuộc quý nào trong Oracle