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

Wyzwalacze:jak mogę zainicjować wartość w tabeli wartością z innej?

Ponieważ nie w ten sposób zmieniasz wartość we wstawianym wierszu - musisz ją zmodyfikować za pomocą :NEW składnia (dokumentacja ); i nie pokazałeś, jak pobrać odpowiednią wartość z MODELO tabela.

Musisz zrobić coś takiego:

CREATE OR REPLACE TRIGGER inicializar_plazas_disponibles
BEFORE INSERT OR UPDATE ON vuelo
FOR EACH ROW
BEGIN
    SELECT capacidad
    INTO :NEW.plazas_disponibles
    FROM modelo
    WHERE ... some condition, presumably another :NEW column ...
END;

(Chociaż nie jestem do końca pewien, czy możesz wybrać bezpośrednio do :NEW value — spróbuj tego, ale jeśli nie, musisz zadeklarować zmienną tego samego typu, wybierz ją, a następnie przypisz ją do :NEW ).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pojawia się błąd PLS-00201 podczas tworzenia typu w oracle

  2. Jak mogę wybrać z listy wartości w Oracle?

  3. zwróć pojedynczy wiersz w procedurze składowanej na oracle

  4. LINQ Użyj like zamiast (( NVL(INSTR(x, y), 0) ) =1)

  5. Jak liczyć wystąpienia separatora w ciągu znaków z wyjątkiem tych w cudzysłowach?