Lists: | pgsql-it-generale |
---|
From: | Ludovico Bonifacio <ludoedgar(at)yahoo(dot)it> |
---|---|
To: | pgsql-it-generale(at)postgresql(dot)org |
Subject: | trigger on delete cascade |
Date: | 2011-02-09 01:31:29 |
Message-ID: | 447805.9668.qm@web25602.mail.ukl.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-it-generale |
Ciao a tutti!
Esiste un modo per attivare un trigger(il cui scopo è di salvare ciò che si
elimina)
non su un evento sulla tabella per cui è stato creato ma per effetto di una
cancellazione di un valore riferito in un altra tabella??
Ad esempio ho:
il trigger che si attiva
AFTER DELETE ON Documento
e in Utente ho
id_utente ON DELETE CASCADE
quindi appena cancello un utente da Utente, giustamente il trigger non riconosce
la DELETE perchè la rileva su Documento.
Esiste un modo per fargli rilevare al Trigger di attivarsi anche nel caso di
eliminazioni on cascade da altre tabelle(in modo da salvare nella tabella
archivio ciò che viene eliminato da Documento)?
Se si quale?
Se no, come potrei fare?
Nello specifico le tabelle sono così:
CREATE TABLE Documento
(
id_documento INTEGER PRIMARY KEY,
id_utente INTEGER REFERENCES Utente(id_utente)
ON UPDATE CASCADE
ON DELETE CASCADE);
CREATE TABLEUtente
(
id_utente INTEGER PRIMARY KEY;
);
Grazie in anticipo a tutti
From: | fluca1978(at)infinito(dot)it |
---|---|
To: | pgsql-it-generale(at)postgresql(dot)org |
Subject: | Re: trigger on delete cascade |
Date: | 2011-02-20 14:42:01 |
Message-ID: | 201102201542.02101.fluca1978@infinito.it |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-it-generale |
MI viene da dire che quello che potrebbe fare al caso tuo sia una regola su
Documento che scatti al DELETE e che esegua INSTEAD la delete cascade e una
stored procedure (la stessa che avresti usato per il trigger).
Luca
On Wednesday, February 09, 2011 02:31:29 AM Ludovico Bonifacio's cat walking
on the keyboard wrote:
> Ciao a tutti!
> Esiste un modo per attivare un trigger(il cui scopo è di salvare ciò che
> si elimina)
> non su un evento sulla tabella per cui è stato creato ma per effetto di
> una cancellazione di un valore riferito in un altra tabella??
> Ad esempio ho:
> il trigger che si attiva
> AFTER DELETE ON Documento
>
> e in Utente ho
> id_utente ON DELETE CASCADE
>
> quindi appena cancello un utente da Utente, giustamente il trigger non
> riconosce la DELETE perchè la rileva su Documento.
> Esiste un modo per fargli rilevare al Trigger di attivarsi anche nel caso
> di eliminazioni on cascade da altre tabelle(in modo da salvare nella
> tabella archivio ciò che viene eliminato da Documento)?
> Se si quale?
> Se no, come potrei fare?
>
> Nello specifico le tabelle sono così:
> CREATE TABLE Documento
> (
> id_documento INTEGER PRIMARY KEY,
> id_utente INTEGER REFERENCES Utente(id_utente)
> ON UPDATE CASCADE
> ON DELETE CASCADE);
>
> CREATE TABLEUtente
> (
> id_utente INTEGER PRIMARY KEY;
> );
>
> Grazie in anticipo a tutti