PDA

View Full Version : [SQL-Trigger]Before Insert


RaouL_BennetH
02-10-2009, 14:59
Ciao a tutti :)

Ho una tabella dove prima di inserire dei dati, dovrei controllarne la validità.

Per semplificare, utilizzo questa tabella:


"tableTest"
ID
employeeId
dataEvento
totale


Il tipo di controllo che dovrei fare, si basa su due elementi:

dataEvento e totale.

Partendo da 'totale':
devo controllare, prima di inserirne il valore, che la somma dei totali aventi la stessa dataEvento e lo stesso employeeId, non superi un valore contenuto in un'altra tabella che, sempre per semplificare:


"tableEmployee"
employeeId
maxValue


In pratica, se maxValue = 100, nella tabella tableTest, per qualsiasi evento che si verifichi nello stesso giorno (dataEvento), la somma di questi eventi(totale) non deve superare i 100 per lo stessa persona (employeeId).

In linea di principio, in pseudo codice, dovrei fare qualcosa del genere:


CREATE TRIGGER testTrx BEFORE INSERT ON tableTest
FOR EACH ROW
SELECT maxValue As t FROM tableEmployee WHERE employeeId = NEW.employeeId

IF SUM(totale) <= t WHERE dataEvento isTheSame
INSERISCI


ecco... se la logica è giusta mi servirebbe una mano a tradurlo da pseudo codice in qualcosa di funzionante :stordita:

Grazie mille :)

RaouL.

CwNd
03-10-2009, 18:53
Che dbms usi? E' doveroso specificarlo perchè le sintassi su trigger/stored procedure sono diverse tra i vari prodotti disponibili...

RaouL_BennetH
04-10-2009, 15:45
Che dbms usi? E' doveroso specificarlo perchè le sintassi su trigger/stored procedure sono diverse tra i vari prodotti disponibili...

A disposizione ho Sql Server 2005 e PostgreSql.

Credo comunque di avere risolto e sto facendo delle prove.

A prescindere dal dmbs ho cercato di utilizzare tutto attenendomi agli standard.

Se funziona, posto la mia soluzione in modo da poter essere valutata .

Grazie mille :)

RaouL.