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

Firebird Discussion :

Une Foreign Key peut-elle être null ?


Sujet :

Firebird

  1. #1
    Membre éclairé Avatar de bassim
    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Février 2005
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 666
    Points : 695
    Points
    695
    Par défaut Une Foreign Key peut-elle être null ?
    voila , mon problème c'est que j'ai une table COMMANDE qui contient un champ
    FACT qui est une clé etrangere de la table FACTURE (sur son numero) .

    mais voilà , comme la vente ne se fait pas forcement le même jour que la commande , je voudrais pouvoir laisser le champ FACT à null jusquà ce que la vente soit effectuée.

    Est ce possible ou dois je changer de méthode ??

  2. #2
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 28
    Points : 19
    Points
    19
    Par défaut Bien sur ...
    Une clé étrangere est nulle ou a une valeur de la table sur laquelle elle fait reference ...
    Benoît

  3. #3
    Membre éclairé Avatar de bassim
    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Février 2005
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 666
    Points : 695
    Points
    695
    Par défaut
    le probleme c que si j'essaye de creer un enregistrement COMMANDE , et que je laisse le champ FACT à null , il me met une erreur champ null

  4. #4
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 28
    Points : 19
    Points
    19
    Par défaut
    Ce champs est not null dans la base ?
    Ce ne dois pas etre le cas ..

  5. #5
    Membre éclairé Avatar de bassim
    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Février 2005
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 666
    Points : 695
    Points
    695
    Par défaut
    non , il n'est pas not null ... donc ou est le probleme ??

  6. #6
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 28
    Points : 19
    Points
    19
    Par défaut
    Faudrait que je vois ton code , ca peut venir de la partir cliente si tu as coder ...
    Si tu executes un insert a la main ca plante ?

  7. #7
    Membre éclairé Avatar de bassim
    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Février 2005
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 666
    Points : 695
    Points
    695
    Par défaut
    En fait , j'utilise Interbase Expert et j'ajoute l'enregistrement sans coder pour essayer avant ...
    et la il me met l'erreur suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    The insert failed because a column definition includes validation constraints.
    validation error for column FACT, value "*** null ***".
    Edit : et j'ajoute que la contrainte sur FACT est codé ainsi :
    Update Rule : No Action
    Delete Rule : No Action
    j'ai essayé les autres combinaisons mais celle là semble la plus logique

  8. #8
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 28
    Points : 19
    Points
    19
    Par défaut
    je ne vois pas , pas de trigger ?
    Avec le script de la base peut etre ....

  9. #9
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 925
    Points : 6 040
    Points
    6 040
    Par défaut
    Tout est dans le message d'erreur....

    L'insertion a échoué car une définition de colonne inclut une validation de contrainte.

    La colonne FACT, lors de l'insertion, doit trouver une valeur correspondant à sa valeur dans la table à laquelle la contrainte fait référence.

    Dans ton cas, il n'y a pas de FK ayant une "valeur" NULL, donc la contrainte n'est pas respectée et l'insertion échoue.

  10. #10
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 28
    Points : 19
    Points
    19
    Par défaut euh ....
    Pas vraiment compris ce que vous vouliez dire la ....
    INSERT INTO TB_RC_CATEGORIES(CAT_CLE, CAT_CODE, CAT_INTITULE, CAT_TYPE)
    VALUES (2000, 'rr', 'rrrrrrrrrr' , NULL )
    par exemple marche avec CAT_TYPE qui reference une table ....

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

Discussions similaires

  1. Une machine téléportée peut-elle être réutilisable ?
    Par mtiburs dans le forum VirtualBox
    Réponses: 1
    Dernier message: 24/09/2013, 20h07
  2. Une variable créée peut-elle être liée ?
    Par Baldenschaft dans le forum Deski
    Réponses: 2
    Dernier message: 29/08/2011, 15h28
  3. une colonne peut-elle être une référence à une table?
    Par professeur shadoko dans le forum Langage SQL
    Réponses: 17
    Dernier message: 24/06/2010, 16h25
  4. SELECT avec une foreign key null
    Par wwave dans le forum Oracle
    Réponses: 1
    Dernier message: 21/01/2010, 17h37
  5. Réponses: 13
    Dernier message: 15/01/2007, 03h30

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