Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: triger before insert
Forum PHP.pl > Forum > Bazy danych > Oracle
mertin
Witam.
Potrzebuję stworzyć triger before insert (do autonumeracji ID) do poniższego fragmentu bazy, niestety nie wychodzi mi, proszę o pomoc

Pozdrawiam.

  1. -- tworzenie tabeli 'pacjenci'
  2. CREATE TABLE pacjenci(
  3. idpac Number PRIMARY KEY,
  4. nazwisko varchar2(30) NOT NULL,
  5. imie varchar2(20) NOT NULL,
  6. miejscowosc varchar2(30) NOT NULL,
  7. ulica varchar2(30) NOT NULL,
  8. nr_domu varchar2(30) NOT NULL,
  9. wiek number(2) NOT NULL,
  10. pesel number(11) NOT NULL,
  11. uwagi varchar2(500) NOT NULL
  12. );
  13. commit;
  14. -- tworzenie sekwencji dla tabeli 'pacjenci'
  15. CREATE sequence pacjenci
  16. minvalue 0
  17. maxvalue 10000
  18. start WITH 1
  19. increment BY 1;
  20. commit;




No tak kombinuje ale coś nie wychodzi, moj pomysł to taki

  1. CREATE OR REPLACE TRIGGER "PACJENCI_T1"
  2. BEFORE
  3. INSERT ON "PACJENCI"
  4. FOR each row SET NEW.idpac = max + 1
  5. begin
  6. INSERT INTO pacjenci (idpac)
  7. VALUES ('max+1');
  8. end;
  9. /


Prosze niech ktoś powie gdzie mam błąd. chodzi o linijkę for each row SET NEW.idpac = max + 1
llepec
Nie wiem czy jeszcze potrzebne ale spróbuj tak, jeżeli masz dalej problem:

  1. CREATE OR REPLACE TRIGGER pacjenci_t1
  2. before INSERT ON pacjenci
  3. FOR each row
  4. begin
  5. INSERT INTO pacjenci VALUES (pacjenci.NEXTVAL, :new.nazwisko, :new.imie, :new.miejscowosc, :new.ulica, :new.nr_domu, :new.wiek, :new.pesel, :new.uwagi);
  6. end;

mmmmmmm
Złota Łopata za wykop roku
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.