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 :

FOREIGN KEY de valeur NULL : erreur 1452


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Par défaut FOREIGN KEY de valeur NULL : erreur 1452
    Bonjour,

    j'ai un p'tit souci pour la création d'une base de données avec contraintes d'intégrités.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    PERSONNE                                 ETABLISSEMENT                                GROUPE
       id     -(0,n)---(appartient)---(0,n)-    id         -(0,1)---(appartient)---(1,n)-  id
       nom                                      nom                                        nom
     adresse                                  adresse
     telephone                              telephone
       fax                                      fax
    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
    CREATE TABLE `t_groupe` (
      `id_groupe` SMALLINT(5) UNSIGNED NOT NULL AUTO_INCREMENT,
      `nom` VARCHAR(100) NOT NULL,
      PRIMARY KEY (`id_groupe`),
      UNIQUE KEY (`nom`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
     
    INSERT INTO `t_groupe` (`id_groupe`, `nom`) VALUES
    (1, "BLABLA");
     
    CREATE TABLE `t_etablissement` (
      `id_etablissement` SMALLINT(5) UNSIGNED NOT NULL AUTO_INCREMENT,
      `nom` VARCHAR(100) NOT NULL,
      `adresse` VARCHAR(255) NOT NULL,
      `tel` VARCHAR(10) NOT NULL,
      `id_groupe` SMALLINT(5) UNSIGNED,
      PRIMARY KEY (`id_etablissement`),
      KEY (`nom`),
      FOREIGN KEY (`id_groupe`) REFERENCES `t_groupe` (`id_groupe`) ON DELETE NO ACTION ON UPDATE NO ACTION
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
     
    INSERT INTO `t_etablissement` (`id_etablissement`, `id_groupe`, `nom`, `adresse`, `tel`) VALUES
    (1, NULL, "AZERTY", "31, rue Diderot", "0102030405");
    Dans ce SI, il est donc possible d'avoir des établissements sans groupe. Mais alors comment gérer la FOREIGN KEY T_etablissement.id_groupe ? J'ai essayé avec NULL mais cela semble être bloquant...
    Alors comment faire ?

    Merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Peux-tu afficher la structure de ta table t_etablissement et voir si le champ id_group peut accepter des valeurs null?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    mysql>desc t_etablissement;
    
    +------------------+----------------------+------+-----+---------+----------------+
    | Field            | Type                 | Null | Key | Default | Extra          |
    +------------------+----------------------+------+-----+---------+----------------+
    | id_etablissement | smallint(5) unsigned | NO   | PRI | NULL    | auto_increment |
    | nom              | varchar(100)         | NO   | MUL | NULL    |                |
    | adresse          | varchar(255)         | NO   |     | NULL    |                |
    | tel              | varchar(10)          | NO   |     | NULL    |                |
    | id_groupe        | smallint(5) unsigned | YES  | MUL | NULL    |                |
    +------------------+----------------------+------+-----+---------+----------------+
    mysql> INSERT INTO `t_etablissement` (`id_etablissement`, `id_groupe`, `nom`, `adresse`, `tel`) VALUES (1, NULL, "AZERTY", "31, rue Diderot", "0102030405");
    Query OK, 1 row affected (0.05 sec)

  3. #3
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Par défaut
    problème résolu !

    effectivement, sans comprendre pourquoi, le champ id_groupe ne permettait pas la valeur NULL...
    maintenant c'est OK.

    merci Mygale1978

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

Discussions similaires

  1. [Débutant] La foreign key s'enregistre dans la BD avec une valeur Null
    Par sisi87 dans le forum ASP.NET MVC
    Réponses: 1
    Dernier message: 22/03/2013, 13h10
  2. Réponses: 3
    Dernier message: 13/09/2011, 11h02
  3. Réponses: 1
    Dernier message: 27/07/2011, 00h42
  4. [1.x] Foreign key et NOT NULL
    Par pmithrandir dans le forum Symfony
    Réponses: 6
    Dernier message: 26/07/2011, 10h36
  5. Jointure avec Foreign Key pouvant être null
    Par neo932rcl dans le forum Requêtes
    Réponses: 4
    Dernier message: 24/03/2011, 16h16

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