Trigger Insert e Update | SQL & MySQL

Topic: Pubblico - Composto da 5 Posts di 2 Utenti.

19 Ottobre, 2011 09:17 #1
ic3kym
Utente

ic3kym
Registrato: Sep, 2011
Posts: 8
Offline

Salve,
volevo chiedere se è possibile creare un trigger che agisca sia sull'insert che sull'update, cioè vorrei creare un trigger che reagisce sia in seguito ad una insert che ad una update.

Io ho provato così:
CREATE TRIGGER DetectConflicts AFTER INSERT OR UPDATE ON nome_tabella,
ma mi da un errore nel comando.

Qualcuno di voi ha risolto questo problema? E se si, come si fa?

Grazie

19 Ottobre, 2011 09:30 #2
g2d
Moderatore

g2d
Registrato: Jul, 2008
Posts: 957
Offline
Segui g2d su Twitter!

Ciao

nn mi è mai capitato ma è sicuramente carina come cosa... che errore ti da?

Pensa che nella peggiore delle ipotesi ne puoi fare 2 no ?

ciao


Un tempo ero algweb ora sono g2d

19 Ottobre, 2011 09:58 #3
ic3kym
Utente

ic3kym
Registrato: Sep, 2011
Posts: 8
Offline

Errore di sintassi!
Avevo già previsto la soluzione di farne due uguali ma pensavo che si potesse ottimizzare con qualche istruzione.

Ho un'altra domanda da porre:
quando creo un trigger
CREATE TRIGGER new_trigger
AFTER INSERT ON nome_tabella
FOR EACH ROW
BEGIN
...
END;

il trigger viene eseguito su ogni riga della tabella quando viene azionato. Quindi penso che il blocco tra "BEGIN"-"END" viene azionato su ciascuna riga.
Come si fa ad accedere ai campi di nome_tabella di ogni riga nella sezione "Begin"-"End"?

Grazie

19 Ottobre, 2011 10:04 #4
g2d
Moderatore

g2d
Registrato: Jul, 2008
Posts: 957
Offline
Segui g2d su Twitter!

opss.... non ho capito molto bene quello che vuoi dire :-P

hai letto questo

http://www.mysqlitalia.it/recipes/64-creare-trigger-mysql


Un tempo ero algweb ora sono g2d

19 Ottobre, 2011 10:21 #5
ic3kym
Utente

ic3kym
Registrato: Sep, 2011
Posts: 8
Offline

Provo a spiegarmi meglio:
all'interno del blocco BEGIN-END devo inserire una condizione
IF(nome_table.data1=now()) THEN fai_qualcosa...

Il problema è proprio nell'accedere alla colonna "data1" per ciascuna riga.
Ho provato a scrivere sia come nell'esempio "nome_table.data1" che solo "data1".
Quando vado ad eseguire il trigger il seguente errore
Unknown table 'nome_table' in field list, oppure
Unknown fild 'data1'.

Grazie.

Condividi su:

Loggati o Registrati per replicare