Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> update trigger
blacha23
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 26.06.2009

Ostrzeżenie: (0%)
-----


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@
Go to the top of the page
+Quote Post

Posty w temacie
- blacha23   update trigger   29.06.2009, 21:15:01
- - nospor   zacznij chlopie pisac wkoncu posty we wlasciwym dz...   29.06.2009, 21:17:25


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.12.2025 - 12:58