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

Kiểm tra ràng buộc Oracle SQL giữa 2 bảng

Bạn nên tạo trình kích hoạt.

Hãy thử điều này

CREATE OR REPLACE TRIGGER   my_trg
              BEFORE INSERT OR UPDATE ON Relationships
                 FOR EACH ROW
  declare
     function i_Age(id int) return int is
     li_res int;
     begin
       select p.Age
        into li_res 
        from Persons p 
        where p.ID= id 
         and rownum=1;
        return li_res;
    exception when no_data_found then
    return NULL; --or Throw Exception depend on your logic if some datas not found
     end;

     BEGIN
      IF INSERTING OR UPDATING THEN
          IF :NEW.Relation == 'child' and i_Age(:NEW.Person_ID) < i_Age(:NEW.Relative_ID)  then 
           NULL; --Throw Exception or your logic
          END IF;
      END IF;
   END;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL - Điền ngày không có kết quả

  2. PLS-00394:Sai số giá trị trong danh sách INTO của câu lệnh tìm nạp

  3. Hàm CAST () trong Oracle

  4. Tổng hợp chuỗi trong Oracle:Nhiều hàng thành một cột

  5. Phiên máy chủ ORACLE đã kết thúc do lỗi nghiêm trọng