salut
je cherche un tutoriel ou une documentation sur la technique de trigger,et y a t'il un autre moyen d'integrer des bd.
merci d'avance,cordialement
salut
je cherche un tutoriel ou une documentation sur la technique de trigger,et y a t'il un autre moyen d'integrer des bd.
merci d'avance,cordialement
Ca existe, mais les Triggers sont généralement une technologie particulière à un SGBD en particulier, autrement dit merci de nous dire pour quel SGBD ?
Ha non, pas d'accord, les triggers sont parfaitement défiis par la norme SQL:1999. Voici un extrait de ce que mon livre en dit :
SQL, collection Synthex, Pearson Education 2005 (F. Brouard / C. Soutou) :
A +7.6 Déclencheurs
Un déclencheur (trigger en anglais) est un objet de la base, relatif à une table, contenant du code SQL exécuté automatiquement en fonction d'un ordre de mise à jour SQL associé. La norme SQL:1999 ne considère que les triggers portant sur les tables et se déclenchant avant ou après l'un des ordres SQL suivant : INSERT, UPDATE ou DELETE. En particulier il n'y a pas de trigger déclenché directement par l'ordre MERGE.
Les déclencheurs peuvent être intéressant dans les cas suivants :
• amélioration d'un modèle de données complexe (par exemple non relation, héritage, limitation de cardinalité...)
• standardisation et normalisation de données (par exemple vérification de clef lors de la saisie d'un numéro de compte bancaire)
• audit et traçabilité de l'évolution de données (par exemple suivi de toutes les modifications d'une table avec récupération de l'utilisateur SQL et de l'heure de survenance de l'événement)
• archivage (par exemple déport des lignes comptables du mois passé dans une table d'une base annexe)
• implémentation de règles métier particulières (par exemple limitation de la remise commerciale en fonction du CA annuel du client)...
La syntaxe de création d'un déclencheur est la suivante :
CREATE TRIGGER <nom_trigger>
{ BEFORE | AFTER }
{ INSERT | UPDATE [ OF <liste_colonne> ] | DELETE }
ON <nom_table> [ REFERENCING <liste_alias_valeurs_anciennes_nouvelles> ]
[ FOR EACH { ROW | STATEMENT } ]
[ WHEN ( <prédicat> ) ]
BEGIN ATOMIC
<code_SQL>
END
<liste_alias_valeurs_anciennes_nouvelles> ::=
OLD [ ROW ] [ AS ] <nom_correlation_valeurs_anciennes>
NEW [ ROW ] [ AS ] <nom_correlation_valeurs_nouvelles>
OLD TABLE [ AS ] <alias_table_valeurs_anciennes>
NEW TABLE [ AS ] <alias_table_valeurs_nouvelles>
...
Certe, cependant des SGBD ont implémenté leur triggers avant cette norme et ce ne sont pas des triggers à ce standard
salut
j'utilise une bd mysql et une bd postgresql,pour l'occasion j'aimerais savoir s'il y a un logiciel capable de generer des triggers sans taper du code sql (en utilisant le mode graphique)
merci ,cordialement.
Non, car aucune interface graphique au monde n'est capable de pisser une requête SQL compte tenu de la complexité possible notamment en ce qui conerne les sous requêtes, les requêtes ensemblistes, la corrélation de sous requêtes, les fonctions de fenêtrage ou les requêtes récursives.
Il vous faut donc apprendre le langage SQL.
A +
d'accord,
au fait je connais un peut le langage sql(creation de tables,vues,mis à jour,suppression,insertion..) mais pas les triggers
avez vous des exemples de triggers par lequels je pourrais connaitre plus cette technique en plus de la syntaxe que vous avez posté , et pour l'occasion j'aimerais savoir s'il y a un utre moyen pour integrer des BDD( utiliser des vues par exemple)
merci à vous,cordialement.
Lisez mon livre, voyez quelques exemples pour SQL Server dans l'article que j'ai écrit ici :
http://sqlpro.developpez.com/cours/s...ransactsql/#L5
A +
merci à vous
mais j'ai une autre question:est ce qu'un trigger peut appeller un script php
(j'ai un script import.php que je veux lancer apres chaque màj d'une table)
cordialement
Oui, mais très dangereux et catastrophique en terme de performances. Rapellez vous que pendant toute la dirée du trigger TOUT LE CODE EST DANS LA TRANSACTION.... autrement dit vous bloquez les autres utilisateurs jusqu'à ce que tout le code du trigger ait été joué, y compris les appels éventuels externes.
Bref, moins il y a de code dans un trigger et mieux c'est, moins il y a de trigger et mieux c'est.
A +
je le fais dans le cadre de mon pfe donc ça ne poserais pas de probleme.
est ce que cette syntaxe fera l'affaire :
CREATE TRIGGER name { BEFORE | AFTER } { event [OR ...] }
ON table FOR EACH { ROW | STATEMENT }
EXECUTE PROCEDURE func ( arguments )
et ci possible avez vous un exemple
merci pour votre soutient.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager