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

Requêtes MySQL Discussion :

changer on update no action en on update cascade


Sujet :

Requêtes MySQL

  1. #1
    Membre habitué
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2002
    Messages
    329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2002
    Messages : 329
    Points : 139
    Points
    139
    Par défaut changer on update no action en on update cascade
    Bonjour,

    J'ai crée une table ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    CREATE TABLE IF NOT EXISTS tblTheme(
    	id int(255) unsigned  not null auto_increment,
    	nom varchar(200),
    	commentaire varchar(250) DEFAULT '',
    	id_domaine int(255) unsigned not null,
    	ordre int(255) unsigned default 0,
    	date_creation DATETIME DEFAULT "0000-00-00 00:00:00.0",
    	PRIMARY KEY(id),
    	INDEX (id_domaine),
        FOREIGN KEY (id_domaine) REFERENCES tblDomaine(id)
                         ON DELETE CASCADE
    					 ON UPDATE NO ACTION
    	)TYPE=INNODB;
    Aujourdh'ui, j'ai eu une erreur de code car on update est en mode NO ACTION

    Je dois le changer en ON UPDATE CASCADE
    J'ai utilisé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE tblTheme DROP FOREIGN KEY id_domaine
    Mais j'ai une erreur !

    JE sais que cela provient de id_domaine car la table n'a pas de terme CONSTRAINT

    Pouvez-vous m'aider ?

    merci

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    L'identifiant de la table que tu nous montres étant de type entier auto-incrémenté, je suppose que l'identifiant référencé par la clé étrangère est du même type ?

    Alors cet identifiant ne devrait jamais être changé, ce qui fait que la clause ON UPDATE est inutile.

    Aujourdh'ui, j'ai eu une erreur de code car on update est en mode NO ACTION
    C'est quoi l'erreur ?
    Tu essaies vraiment de modifier une valeur de clé primaire de la table tblDomaine ?
    Pourquoi ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre habitué
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2002
    Messages
    329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2002
    Messages : 329
    Points : 139
    Points
    139
    Par défaut
    En fait, j'ai utilisé ma table. Donc elle contient des données en utilisant que des insertions.

    A un moment, j'ai voulu modifié un enregistrement et l'accès m'est devenu interdit. J'ai eu une erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ERREUR insert into tbltheme (nom, commentaire, date_creation, id_domaine) values ('nouvelle activite', 'commentaire newhbbbvvv',now(),'3') : Cannot add or update a child row: a foreign key constraint fails (`ecours_bd/tbltheme`, CONSTRAINT `tblactivite_ibfk_1` FOREIGN KEY (`id_domaine`) REFERENCES `tbldomaine` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION)
    ERREUR N° :1452
    Donc j'ai supposé que le souci provient de la restriction ON UPDATE NO ACTION !

  4. #4
    Membre habitué
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2002
    Messages
    329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2002
    Messages : 329
    Points : 139
    Points
    139
    Par défaut
    C'est quoi l'erreur ?
    Tu essaies vraiment de modifier une valeur de clé primaire de la table tblDomaine ?
    Pourquoi ?
    Est-ce parce que je force une modification sur id_domaine ? En fait, modifier id_domaine ne m'est pas indispensable finalement !

    Je le retire !

  5. #5
    Membre habitué
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2002
    Messages
    329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2002
    Messages : 329
    Points : 139
    Points
    139
    Par défaut
    Cela fonctionne beaucoup mieux!

    merci

    J'en profite pour souhaiter à tous de très belles fêtes de fin d'année.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [1.x] [action et route] Update
    Par orzhov dans le forum Symfony
    Réponses: 4
    Dernier message: 20/09/2010, 13h57
  2. Fonctionnement de l'update sur "action on data"
    Par gavelin dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 19/11/2009, 09h07
  3. Update sur un GridView qui update pas !
    Par zooffy dans le forum ASP.NET
    Réponses: 1
    Dernier message: 16/09/2008, 09h53
  4. TRIGGER INSERT UPDATE - Savoir si Insert ou Update
    Par mail.spam dans le forum Développement
    Réponses: 2
    Dernier message: 25/06/2008, 10h39
  5. [MFC] updater un control sans les updater tous
    Par zzorglub dans le forum MFC
    Réponses: 4
    Dernier message: 14/02/2006, 17h06

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