sql >> Database >  >> RDS >> Oracle

Oracle-trigger op geneste tabel

U kunt geen trigger definiëren zoals "BEFORE UPDATE ON Museum.EmployeeList.birthdate"Maar u kunt een normale trigger schrijven VOORDAT UPDATE ON Museum en in de triggerbody kunt u alle werknemers doorlopen die de datum controleren.

Probeer deze:

CREATE OR REPLACE TRIGGER BUIR_Museum 
    BEFORE INSERT OR UPDATE ON Museum
    FOR EACH ROW

BEGIN
    IF :NEW.EmployeeList IS NOT NULL THEN
        FOR i IN :NEW.EmployeeList.FIRST..:NEW.EmployeeList.LAST LOOP
            IF :NEW.EmployeeList(i).birthdate > SYSDATE THEN
                RAISE_APPLICATION_ERROR(-20029, 'Invalid birthday');
            END IF;
        END LOOP;
    END IF;
END;



  1. MySQL optimaliseren voor ALTER TABLE van InnoDB

  2. Verbinding maken met GCP Cloud SQL vanuit App Engine in afzonderlijk project

  3. Meerdere items in een kolom op mysql . houden

  4. Vind en vervang de volledige mysql-database