|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2007
Messaggi: 411
|
[MySQL] Questa sintassi per un Trigger è errata??
Ciao ragazzi,
mi serve un aiuto per capire dove sbaglio nella sintassi di questo trigger SQL: "data_nascita" e "anno_assunzione" sono colonne della tabella Dipendenti Codice:
mysql> CREATE TRIGGER ctrl_data
-> BEFORE INSERT ON Personale
-> FOR EACH ROW
-> BEGIN
-> IF
-> NEW.data_nascita>'1991-12-31' AND NEW.anno_assunzione<2009 THEN
-> SET NEW.data_nascita=0000-00-00
-> SET NEW.anno_assunzione=0000
-> END IF
-> END
-> ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET NEW.anno_assunzione=0000
END IF
END' at line 8
Grazie
__________________
MOTHERBOARD Asus P5Q-Pro - CPU intel Core 2 Quad Q9550 2.8 Ghz 12 MB Cache - VGA Sapphire Radeon HD4870 512 MB - HD Seagate Barracuda 7200 500GB 32 MB - RAM 4 GB ocz platinum DDR2 pc6400 800 Mhz @5-4-4 - ALIM Enermax 620W - CASE Enermax Chakra - OS Windows 7 Professional 64bit Ultima modifica di Helldron : 16-12-2010 alle 17:59. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
1) Devi cambiare il delimiter.
2) Devi mettere il ; alla fine delle istruzioni. 3) devi mettere la data fra apici. Codice:
DELIMITER ; $$
CREATE TRIGGER ctrl_data BEFORE INSERT ON Personale
FOR EACH ROW BEGIN
IF NEW.data_nascita > '1991-12-31' AND NEW.anno_assunzione < 2009 THEN
SET NEW.data_nascita = '0000-00-00';
SET NEW.anno_assunzione = 0;
END IF;
END $$
DELIMITER $$ ;
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Apr 2007
Messaggi: 182
|
Per cambiare il carattere delimitatore è sufficiente:
Codice:
DELIMITER $$ |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:53.



















