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

PHP & Base de données Discussion :

cle etrangere et valeur par défaut [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2014
    Messages : 744
    Par défaut cle etrangere et valeur par défaut
    Bonjour.
    J'ai des requêtes sql envoyer par pHp dans une table qui a des clés étrangères.
    Il y a des cas où je ne souhaite pas mettre cette valeur de clé étrangère.
    Du coup :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cannot add or update a child row: a foreign key constraint fails (`touslesport.v2`.`sorties`, CONSTRAINT `sorties_ibfk_3` FOREIGN KEY (`velos_id_velos`) REFERENCES `velos` (`id_velos`) ON DELETE NO ACTION ON UPDATE CASCADE)
    Je ne sais pas comment gérer ce cas à moins de créer une ligne supplémentaire dans la table qui contient les clés primaires.
    Je sèche, j'aurais mettre un NULL ou un -1 dans mes clés primaires mais là pareil, je n'y arrive pas.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Est-ce que les NULL sont autorisés sur ta colonne velos_id_velos ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2014
    Messages : 744
    Par défaut
    Oui.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu peux nous donner l'export de la structure des deux tables ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2014
    Messages : 744
    Par défaut
    C'est mon Not null le problème.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    -- Adminer 4.1.0 MySQL dump
     
    SET NAMES utf8;
    SET time_zone = '+00:00';
     
    CREATE TABLE `velos` (
      `id_velos` int(11) NOT NULL AUTO_INCREMENT,
      `nom_velos` varchar(45) NOT NULL,
      `commentaire_velo` text,
      PRIMARY KEY (`id_velos`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
     
     
    -- 2017-06-09 12:35:06

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2014
    Messages : 744
    Par défaut
    J'en ai oublié un morceau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    -- Adminer 4.1.0 MySQL dump
     
    SET NAMES utf8;
    SET time_zone = '+00:00';
     
    CREATE DATABASE `touslesport.v2` /*!40100 DEFAULT CHARACTER SET latin1 */;
    USE `touslesport.v2`;
     
    DROP TABLE IF EXISTS `sorties`;
    CREATE TABLE `sorties` (
      `id_sorties` int(17) NOT NULL AUTO_INCREMENT,
      `date_sorties` date NOT NULL,
      `HHHtemps_sorties` tinyint(3) unsigned DEFAULT NULL,
      `MMtemps_sorties` tinyint(3) unsigned DEFAULT NULL,
      `SStemps_sorties` tinyint(3) unsigned DEFAULT NULL,
      `moyenne_sorties` decimal(10,0) unsigned DEFAULT NULL,
      `poids_sorties` decimal(10,0) unsigned DEFAULT NULL,
      `forme_sorties` varchar(45) DEFAULT NULL,
      `commentaire_court_sorties` varchar(100) DEFAULT NULL,
      `commentaire_long_sorties` text,
      `denivsup_sorties` smallint(5) unsigned DEFAULT NULL,
      `distsup_sorties` decimal(10,0) unsigned DEFAULT NULL,
      `HHsup_sorties` tinyint(3) unsigned DEFAULT NULL,
      `MMsup_sorties` tinyint(3) unsigned DEFAULT NULL,
      `SSsup_sorties` tinyint(3) unsigned DEFAULT NULL,
      `parcours_id_parcours` int(11) DEFAULT NULL,
      `velos_id_velos` int(11) DEFAULT NULL,
      `multisports_id_multisports` int(11) DEFAULT NULL,
      `ordre_sorties` int(11) NOT NULL DEFAULT '1',
      `HHHapres_sorties` tinyint(3) unsigned DEFAULT NULL,
      `MMapres_sorties` tinyint(3) unsigned DEFAULT NULL,
      `SSapres_sorties` tinyint(3) unsigned DEFAULT NULL,
      PRIMARY KEY (`id_sorties`),
      KEY `id_parcours_idx` (`parcours_id_parcours`),
      KEY `iid_velos_idx` (`velos_id_velos`),
      KEY `id_multisports_idx` (`multisports_id_multisports`),
      CONSTRAINT `sorties_ibfk_1` FOREIGN KEY (`multisports_id_multisports`) REFERENCES `multisports` (`id_multisports`) ON DELETE NO ACTION ON UPDATE CASCADE,
      CONSTRAINT `sorties_ibfk_2` FOREIGN KEY (`parcours_id_parcours`) REFERENCES `parcours` (`id_parcours`) ON DELETE NO ACTION ON UPDATE CASCADE,
      CONSTRAINT `sorties_ibfk_3` FOREIGN KEY (`velos_id_velos`) REFERENCES `velos` (`id_velos`) ON DELETE NO ACTION ON UPDATE CASCADE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
     
     
    -- 2017-06-09 12:41:27

  7. #7
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2014
    Messages : 744
    Par défaut
    Pour l’énoncé du problème.
    Je veux sans modifier mon modèle de données, avoir une table sortie, dont une des colonnes référence le vélo utilisé (FK).
    Jusque là tout va bien.
    Le problème est que mes sorties peuvent être de la course à pieds ou de la natation et dans ce cas, je n'utilise pas de vélo.

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    La structure est bonne, c'est plutôt dans ta requête d'insertion qu'il y a un problème.
    Soit tu mets un NULL explicitement comme valeur, soit tu omets la colonne.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2014
    Messages
    744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2014
    Messages : 744
    Par défaut
    Super merci,
    c'est bien ça j'avais un 'null' au lieu de null dans ma requête.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/07/2004, 17h46
  2. Valeur par défaut dun DBLookupcombobox
    Par lol_adele dans le forum Bases de données
    Réponses: 2
    Dernier message: 13/05/2004, 09h08
  3. Valeur par défaut dans une table objet
    Par Ricky81 dans le forum Oracle
    Réponses: 12
    Dernier message: 18/03/2004, 11h52
  4. Réponses: 2
    Dernier message: 18/10/2003, 14h42
  5. Unique + valeur par défaut
    Par ketalie dans le forum Outils
    Réponses: 4
    Dernier message: 02/07/2003, 15h29

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