[mysql] trigger et drop table
fxtaa
Messages postés
1170
Statut
Membre
-
Yoan Messages postés 11905 Statut Modérateur -
Yoan Messages postés 11905 Statut Modérateur -
Bonjour,
Je débute dans les triggers et je n'ai rien trouvé concernant des triggers sur des drop table avec MySql (peut être que mysql ne sait pas faire apres tout).
L'evenement est :
Lorsque la table bob est détruite
alors update le champ time de la table timer avec l'heure serveur
où le lieu est le serveur sql
Et en code ca donne :
et l'erreur :
#1064 - 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 'DROP TABLE ON bob UPDATE timer SET time = 'toto' WHERE lieu='sql'' at line 1
ps : actuellement je met time='toto' et le champs time est en "varchar", je corrigerai les problemes de champs ultérieurement.
info serveur :
* Serveur: localhost via TCP/IP
* Version du serveur: 5.1.31-community
* Version du protocole: 10
* Utilisateur: root@localhost
* Jeu de caractères pour MySQL: UTF-8 Unicode (utf8)
Cordialement, Fxta.
Je débute dans les triggers et je n'ai rien trouvé concernant des triggers sur des drop table avec MySql (peut être que mysql ne sait pas faire apres tout).
L'evenement est :
Lorsque la table bob est détruite
alors update le champ time de la table timer avec l'heure serveur
où le lieu est le serveur sql
Et en code ca donne :
CREATE TRIGGER actu AFTER DROP TABLE ON bob UPDATE timer SET time = NOW() WHERE lieu='sql'
et l'erreur :
#1064 - 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 'DROP TABLE ON bob UPDATE timer SET time = 'toto' WHERE lieu='sql'' at line 1
ps : actuellement je met time='toto' et le champs time est en "varchar", je corrigerai les problemes de champs ultérieurement.
info serveur :
* Serveur: localhost via TCP/IP
* Version du serveur: 5.1.31-community
* Version du protocole: 10
* Utilisateur: root@localhost
* Jeu de caractères pour MySQL: UTF-8 Unicode (utf8)
Cordialement, Fxta.
A voir également:
- [mysql] trigger et drop table
- Table ascii - Guide
- Table des matières word - Guide
- Share drop - Télécharger - Téléchargement & Transfert
- Table des caractères - Guide
- Table des annexes word ✓ - Forum Word
2 réponses
On dirait que ce n'est pas possible, effectivement :
http://dev.mysql.com/doc/refman/5.0/fr/create-trigger.html
Mais bon, en même temps un trigger est directement rattaché à une table (d'où le ON tbl_name), donc si tu détruits une table il faut au préalable détruire ses triggers.
Ce que tu veux faire se réalise peut-être avec la clause DELETE plutôt que DROP. Auquel cas la table est vidée mais toujours existante, donc les triggers associés aussi.
http://dev.mysql.com/doc/refman/5.0/fr/create-trigger.html
CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt trigger_event indique le type de commande qui active le déclencheur. Il peut valoir INSERT, UPDATE ou DELETE. Par exemple, un déclencheur BEFORE pour une commande INSERT peut être utilisé pour vérifier les valeurs avant leur insertion dans la table.
Mais bon, en même temps un trigger est directement rattaché à une table (d'où le ON tbl_name), donc si tu détruits une table il faut au préalable détruire ses triggers.
Ce que tu veux faire se réalise peut-être avec la clause DELETE plutôt que DROP. Auquel cas la table est vidée mais toujours existante, donc les triggers associés aussi.