|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Bannato
Iscritto dal: Jun 2009
Messaggi: 44
|
[MySql] Trigger che si inchioda, perchè?
Ciao,
ho una tabella INSERZIONE avente la seguente struttura: Allora ho creato un trigger avente questo codice: Codice:
mysql> describe inserzione;
+-----------------+-----------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+-----------------------+------+-----+---------+----------------+
| Id_Oggetto | int(11) | NO | PRI | NULL | auto_increment |
| Titolo | varchar(60) | NO | MUL | NULL | |
| Descrizione | text | YES | | NULL | |
| Costo_Base | decimal(6,2) | YES | | NULL | |
| Compralo_Subito | decimal(6,2) | YES | | NULL | |
| Scadenza | datetime | YES | MUL | NULL | |
| Stato_Oggetto | enum('nuovo','usato') | YES | | NULL | |
| Id_Venditore | varchar(20) | NO | | NULL | |
| Id_Categoria | varchar(30) | NO | | NULL | |
+-----------------+-----------------------+------+-----+---------+----------------+
Ecco il codice del trigger: Codice:
DELIMITER $$ CREATE TRIGGER Check_Inserzione_Trg BEFORE INSERT ON inserzione /* Esegue il trigger prima dell'inserzione di un record in FeedbackAcquirente */ FOR EACH ROW BEGIN INSERT INTO inserzione (Id_Oggetto, Titolo, Descrizione, Costo_Base, Compralo_Subito, Scadenza, Stato_Oggetto, Id_Venditore, Id_Categoria) VALUES(NEW.Id_Oggetto, NEW.Titolo, NEW.Descrizione, ABS(NEW.Costo_Base), ABS(NEW.Compralo_Subito), NEW.SCadenza, NEW.Stato_Oggetto, NEW.Id_Venditore, NEW.Id_Categoria); END $$ DELIMITER ; mysql> INSERT INTO INSERZIONE -> VALUES -> (NULL, 'Lettore MP3 Creative', 'Lettore MP3 da 8 Gb', -3, -150, '2009-06-28 17:30:00', 'nuovo', 'Fotografo84', 4);; ERROR 1442 (HY000): Can't update table 'inserzione' in stored function/trigger because it is already used by statement which ed this stored function/trigger. ERROR: No query specified Da cosa potrebbe dipendere? Qualche soluzione? Tnx |
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jun 2007
Città: Milano
Messaggi: 413
|
Cancella tutta quella query li e scrivi solo:
Codice:
SET NEW.Costo_Base = ABS(NEW.Costo_Base); SET NEW.Compralo_Subito = ABS(NEW.Compralo_Subito); |
|
|
|
|
#3 |
|
Bannato
Iscritto dal: Jun 2009
Messaggi: 44
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:59.



















