Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle SQL Check ограничение между 2 таблици

Трябва да създадете тригер.

Опитайте това

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. Pivot на Oracle 10g

  2. Грешки при задействане ORA-04092 ORA-04088

  3. Oracle Database TLS1.2 / SSL връзка с помощта на JDBC тънък и JKS

  4. ORA-29908:липсващо първично извикване за спомагателен оператор

  5. LOWER() Функция в Oracle