Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: update trigger
Forum PHP.pl > Forum > Bazy danych > MySQL
blacha23
witam, otoz stworzylem nastepujace tabele


  1. CREATE TABLE klient(kid INTEGER NOT NULL PRIMARY KEY,name VARCHAR(100),rabat DECIMAL(5,2))
  2.  
  3. CREATE TABLE zamowienie(zid INTEGER NOT NULL PRIMARY KEY,data_zamowienia DATE,suma_rachunku DECIMAL (10,2),klient INTEGER,pracownik INTEGER,FOREIGN KEY (klient) REFERENCES klient(kid))


i mam zamiar zrobic teraz triggera, ktory przy kazdej aktualizacji atrybutu suma_rachunku z relacji zamowienie bedzie sprawdzal, czy zamawiajacy klient w aktualnym roku (czas systemowy, nie konkretna data zamowienia) zamowil na wiecej niz 10.000, ale nie wieksza niz 100.000. Za kazde 10.000 dostaje 2% rabatu.

  1. CREATE TRIGGER upd_rechsum
  2. AFTER UPDATE OF suma_rachunku ON zamowienie
  3. REFERENCING NEW ROW AS n
  4. FOR EACH ROW
  5. WHEN (EXISTS (YEAR(data_zamowienia)=YEAR(CURRENT DATE) AND suma_rachunku >= 10000 AND suma_rachunku <= 100000)
  6. BEGIN ATOMIC
  7.  
  8. -- tu zaczynaja sie moje glowne problemy
  9. UPDATE zamowienie SET suma_rachunku = suma_rachunku - rabat
  10. UPDATE klient SET rabat = ((SELECT suma_rachunku FROM zamowienie) suma_rachunku/10000)) * 2;
  11. END@
nospor
zacznij chlopie pisac wkoncu posty we wlasciwym dziale. skoro twoja baza to mysql to pisz wdziale MYSQL! przenosze
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-2025 Invision Power Services, Inc.