PDA

View Full Version : [MySQL] Trigger ed errore 1442


Gio Games
14-05-2009, 18:41
Salve a tutti ragazzi.
Ho un problema con i trigger in MySQL.

Innanzitutto ho un trigger definito in questo modo:
CREATE TRIGGER incrementa_articoli
AFTER INSERT ON articoli
FOR EACH ROW
UPDATE negozi
SET negozi.num_articoli = negozi.num_articoli + 1
WHERE nome = NEW.negozi;

Come è facile intuire questo trigger non fa altro che incrementare il numero di articoli di un negozio.

Ho una query cosìffatta:

INSERT INTO articoli (codice, peso, prezzo, nome, categorie, negozi, quantita)
VALUES ('$codice', '$peso', '$prezzo', '$nome', '$categorie', (SELECT nome FROM negozi WHERE utenti = '$commerciante'), '$quantita');

Al momento dell'esecuzione mi ritrovo un bel errore #1442:
Can't update table 'negozi' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.

Ho capito che il problema sta nella subquery, che si riferisce alla stessa tabella che il trigger deve aggiornare.
Ora la mia domanda è: esiste una soluzione a questo problema (a parte effettuare a parte la subquery ed inserire il valore costante) oppure no?

Grazie a tutti

Gio Games
16-05-2009, 08:11
Nessun'idea ragazzi?