Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Ograniczenie Oracle SQL Check między 2 tabelami

Powinieneś utworzyć wyzwalacz.

Wypróbuj to

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. Nie mogę znaleźć podpowiedzi na temat „Oracle SQL Developer” i „Oracle Database 12c” w powłoce Linux

  2. Wartość domyślna dla parametrów, które nie zostały przekazane do skryptu SQLPlus

  3. Dlaczego Mysql's Group By i Oracle's Group by różnią się zachowaniami?

  4. czy możemy nazwać domyślne ograniczenie w Oracle?

  5. Krok po kroku R12.2.6 Instalacja EBS na Virtual Box