Citat:
Ursprungligen postat av christery
Ehh, en miljövariabel läses med dbms_system.get_env i PL/SQL. Skrev jag global variabel, dom lägger jag i en tabell i så fall.
Jan antog en update, men jag kan väl ha fel. Mitt förslag med en koll på användaren verkar dock lite mer rolig, då behöver man inte låsa ut andra.
Triggern är ju bara lite text som ligger före eller efter det man egentligen vill göra med tabellen.
EDIT: Lägger helst inte sånt i DBMSen alls, lägg den i applikationen som matar data. Fixa med finurliga lösningar i databasen är bara förvirrande.
Rätt information i databasen är ju bara så trist. Om alla helt plötsligt bor på samma adress för att nån glömde ett "where" går ju snabbt att fixa.
Men jag kanske är gammaldags, 3 tier kanske är passé. Får alla pilla direkt i databasen så blir det ju så mycket lättare, eller?
En global variabel är inte samma sak som data i en tabell, nu stöds inte global variabel i MS SQL, i Oracle vet jag inte. Du säger miljö-variabel, vad är scoopet på den? gäller den hela instansen, alltså är den global?
Nej, triggern är inget som bara ligger som text före eller efter det man egentligen vill göra med tabellen. En trigger är ett eget objekt i databasen som automatiskt anropas av motorn när vissa händelser inträffar. DML-triggers kan deklareras för händelserna INSERT, UPDATE och DELETE.
Man kan inte låta bli att få triggern anropad av motorn. Om händelse sker som svara mot att triggern ska anropas och triggern är aktiv så kommer den att exekvera.
Man kan heller inte anropa en trigger direkt.
Triggern kan utför all typ av datamainpulation, den kan till och med få vyer att bli uppdateringsbara men den kan inte ändra i schemat så vitt jag vet.
http://msdn.microsoft.com/en-us/libr...ql.105%29.aspx
När man ska använda triggers kan debatteras men det är klart att det finns situationer då det är att föredra vilket påvisas av dess rena existens.
Ang. "Rätt information", ja, en trigger
kan vara ett sätt att säkra detta med.
Ang. "3 tier".
Ett exempel på när logik kan berättigas i DB'n är i mitt tycke när den är väldigt statisk, eller endast syftar till att upprätthålla integriten och/eller ev. flera olika nyttjare av information finns där man inte kan ha logiken och/eller inte kan/vill duplicera logiken så visst, placera den i DB'n. Man får väl vara lite flexibel, om än efter motivering.