IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Procédural MySQL Discussion :

Triggers avec mysql


Sujet :

SQL Procédural MySQL

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 7
    Par défaut Triggers avec mysql
    Bonjour, je cherche à faire des triggers avec mysql (pas trop de souci coté déclaration) mais je n'arrive pas à trouver comment récupérer une donnée.

    Je veux dire, lors de la suppression d'un champ dans la table catégories, un trigger s'active et supprime tous les articles dans la table articles ayant pour numéro de catégorie celle supprimée.

    Le problème est là:

    Requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DELETE FROM categories WHERE numcat=3
    trigger : hop on demande un delete sur la table catégories, vite il faut que je supprime les articles. Mais comment récupérer le numéro de catégorie entré ?

    Merci d'avance

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 952
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 952
    Par défaut
    A mon avis tu cherches à faire un ON DELETE CASCADE sur la foreign key de la table article référençant la table catégorie.
    Donc pas de code, pas de trigger. Utilises tu INNODB ?

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 7
    Par défaut
    Utilises tu INNODB ?
    non, je ne sais pas ce que c'est.

    Ce que je voudrais, c'est que le trigger fasse delete from articles where numcat=numéro_de_la_catégorie_de_la_requete.

  4. #4
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 952
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 952
    Par défaut
    Si tu peux développer un trigger c'est que tu es en mysql 5 donc tu peux utiliser le moteur de stockage INNODB à la place de myisam (tu peux voir quel moteur de stockage est utilisé en regardant les scripts de créations des tables sur phpmyadmin).

    Il est préférable d'utiliser INNODB pour pouvoir implémenter les contraintes d'intégrité référentielle (foreign key) et là tu peux utiliser ON DELETE CASCADE. C'est le meilleur moyen pour faire les choses proprement et tu as peut être déjà une clé étrangère.

    Après si tu es en myisam et que tu ne peux pas le changer, il faut coder le trigger, pour ce qui est de récupérer la valeur supprimée, c'est quelque chose comme OLD.numcat

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 7
    Par défaut
    J'ai un projet dans lequel il me faut absolument 3 triggers, c'est pour ça que je cherche à faire ce principe, que je saurai expliquer.

    Donc des delete en cascade, ce n'est pas envisageable.

    Je vais voir pour INNODB et old., merci

Discussions similaires

  1. Erreur de syntaxe sur trigger avec mysql 5.1
    Par WhoIsTiti dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 29/03/2012, 07h18
  2. trigger avec mysql
    Par kate59 dans le forum SQL Procédural
    Réponses: 0
    Dernier message: 16/06/2008, 16h13
  3. [MySQL]Trigger avec condition utilisant la date du jour
    Par Irish dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 21/12/2006, 22h17
  4. Probleme avec Mysql
    Par kevinss dans le forum Administration
    Réponses: 5
    Dernier message: 31/10/2003, 10h43
  5. Problème d'insertion avec MySQL
    Par Sonny dans le forum ASP
    Réponses: 13
    Dernier message: 28/08/2003, 13h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo