|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mai 2007 Messages : 1 ![]() |
hi :
je veux créer un trriger qui me permet d'empecher la mise a jour de certaines colonnes d'une table ds la cas de violation des regles d'integrite , et comme les triggers de mysql ne suporttent pas les rollback ainsi que l'affichage des msg d'erreur (comme sous oracle : raise application error), j'ai pense a utilisé une procedure stockées qui va faire ca et qui va etre appele depuis le trrigers . so es que qlq peut m'aider avec un petit tuto , ou un lien ? merci d'avance |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
D'abord il faut noter que Oracle comme MySQL interdit d'exécuter COMMIT ou ROLLBACK dans le code d'un trigger.
Ensuite, simuler la fonction Oracle raise_application_error consiste pour l'instant simplement à générer une erreur d'après cette discussion (en anglais): - ne pas respecter une contrainte de type clé primaire, colonne non null, ou clé étrangère - exécuter une procédure stockée qui n'existe pas - créer une fonction UDF (assez compliqué ...). Le code client doit ensuite explicitement reconnaître cette erreur et savoir la traduire correctement. |
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() |
Bonjour,
j'ai un souci du même ordre. Si je comprends bien pifor, le déroulement pourrait être celui-ci : 1 - j'ai un INSERT 2 - j'ai un TRIGGER qui vérifie qu'il n'y a pas doublon (je sais il suffit de mettre UNIQUE) mais admettons... 3 - il ya doublon je fais une requête pourrie, ça annule mon INSERT 4 - il n'y a pas doublon j'éxécute l'insert... C'est ça ? :aie:
__________________
"n'imprimez ces messages que si nécessaire... Préservez notre planète"
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
disons plutôt :
2/ j'ai un trigger BEFORE INSERT... ... 4/ l'INSERT s'exécute tout seul |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com