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

MS SQL Server Discussion :

problème clé étrangère en null


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    490
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 490
    Par défaut problème clé étrangère en null
    bonjour,

    J'ai un problème avec ma base de données... j'ai (entre autres) une table équipement et contrat où un contrat peu avoir 1 ou plusieurs équipements et ou un équipement à 0 ou 1 contrat.
    Je dois donc normalement avoir une clé étrangère num_contrat dans équipement (valeur null) qui permet de me dire que si l'équipement est contractualisé ou non.
    Seulement quand j'entre mes données j'ai cette erreur : " Conflit entre l'instruction INSERT et la contrainte COLUMN FOREIGN KEY 'FK_EQUIPMENT_CONTRAT". Le conflit est survenu dans la base de données XXXX, table contrat column "num_contrat".
    Est ce dû au fait que dans la table contrat num_contrat est en not null ?
    ps : je rentre mes données en faisant un clic droit ouvrir sur ma table dans analyseur de requettes....

    Merci de votre aide...

    Code généré par sql Serveur

    CREATE TABLE [A377].[CONTRAT] (
    [NUM_CONTRAT] [char] (5) COLLATE French_CI_AS NOT NULL ,
    [NUM_CENTRE] [char] (5) COLLATE French_CI_AS NOT NULL ,
    [NUM_CLIENT] [char] (5) COLLATE French_CI_AS NOT NULL ,
    [DATE_RESILIATION] [datetime] NULL ,
    [DATE_RECONDUCTION] [datetime] NULL ,
    [MONTANT_CONTRAT] [decimal](9, 2) NULL ,
    [DATE_CONTRAT] [datetime] NULL ,
    [ETAT_CTR] [numeric](1, 0) NOT NULL
    ) ON [PRIMARY]
    GO

    /****** Objet : Table [A377].[EQUIPEMENT] Date du script : 19/08/2004 09:38:34 ******/
    CREATE TABLE [A377].[EQUIPEMENT] (
    [NUM_MODELE] [char] (7) COLLATE French_CI_AS NOT NULL ,
    [NUM_CENTRE] [char] (5) COLLATE French_CI_AS NOT NULL ,
    [NUM_SERIE] [char] (10) COLLATE French_CI_AS NOT NULL ,
    [PERIODICITE] [numeric](3, 0) NULL ,
    [LIB_EQUIPEMENT] [char] (30) COLLATE French_CI_AS NULL ,
    [PLANIFICATON] [datetime] NULL ,
    [NUM_CONTRAT] [char] (5) COLLATE French_CI_AS NULL
    ) ON [PRIMARY]
    GO

    ALTER TABLE [A377].[CONTRAT] WITH NOCHECK ADD
    CONSTRAINT [DF__CONTRAT__ETAT_CT__01142BA1] DEFAULT ('0') FOR [ETAT_CTR],
    CONSTRAINT [PK_CONTRAT] PRIMARY KEY CLUSTERED
    (
    [NUM_CONTRAT]
    ) ON [PRIMARY]
    GO

    ALTER TABLE [A377].[EQUIPEMENT] WITH NOCHECK ADD
    CONSTRAINT [DF__EQUIPEMEN__NUM_C__7F2BE32F] DEFAULT ('0000') FOR [NUM_CONTRAT],
    CONSTRAINT [PK_EQUIPEMENT] PRIMARY KEY CLUSTERED
    (
    [NUM_SERIE]
    ) ON [PRIMARY]
    GO

    ALTER TABLE [A377].[CONTRAT] ADD
    CONSTRAINT [FK_CONTRAT_CONCERNE_CENTRE_I] FOREIGN KEY
    (
    [NUM_CENTRE]
    ) REFERENCES [A377].[CENTRE_INFO] (
    [NUM_CENTRE]
    ),
    CONSTRAINT [FK_CONTRAT_SIGNE_CLIENT] FOREIGN KEY
    (
    [NUM_CLIENT]
    ) REFERENCES [A377].[CLIENT] (
    [NUM_CLIENT]
    )
    GO

    ALTER TABLE [A377].[EQUIPEMENT] ADD
    CONSTRAINT [FK_EQUIPEME_CIF_4_MODELE] FOREIGN KEY
    (
    [NUM_MODELE]
    ) REFERENCES [A377].[MODELE] (
    [NUM_MODELE]
    ),
    CONSTRAINT [FK_EQUIPEME_CIF_5_CENTRE_I] FOREIGN KEY
    (
    [NUM_CENTRE]
    ) REFERENCES [A377].[CENTRE_INFO] (
    [NUM_CENTRE]
    ),
    CONSTRAINT [FK_EQUIPMENT_CONTRAT] FOREIGN KEY
    (
    [NUM_CONTRAT]
    ) REFERENCES [A377].[CONTRAT] (
    [NUM_CONTRAT]
    )
    GO

  2. #2
    Membre émérite
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Par défaut Re: problème clé étrangère en null
    Slt,

    A prioris ton Pb vient de la ligne suivante:

    Citation Envoyé par maysa
    ALTER TABLE [A377].[EQUIPEMENT] WITH NOCHECK ADD
    CONSTRAINT [DF__EQUIPEMEN__NUM_C__7F2BE32F] DEFAULT ('0000') FOR [NUM_CONTRAT],
    En effet tu as mis une valeur par default '0000' dans ta table Equipement.
    Mais est-ce que cette valeur existe dans ta table CONTRAT?

    Enlève ta valeur par defaut et le pb est réglé ou crée la valeur '0000'.

    @+
    8)

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    490
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 490
    Par défaut
    Possible en effet, tu as raison ...je l'avais laissé en valeur not null, je ne pensais pas pouvoir la mettre en null, du coup j'étais obligée de mettre une valeur default !
    Merci, je testerai demain....

  4. #4
    Membre émérite
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Par défaut
    Slt,

    Pense à mettre "résolu" si c'est Ok

    8)

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    490
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 490
    Par défaut
    Oui, oui je n'oublierai pas ;-)

    bon et bien il n'en veut toujours pas....conflit entre l'instruction INSERT et la FOREIGN KEY. table CONTRAT num_contrat...

  6. #6
    Membre émérite
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Par défaut
    Slt,

    Tu as bien oté ta valeur par defaut et accepter les null pour ton champ Num_Contrat de ta table Equipement ?

    @+
    8)

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    490
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 490
    Par défaut
    Oui valeur null et defaut oté...étrange !
    voici le nouveau code généré

    CREATE TABLE [A377].[EQUIPEMENT] (
    [NUM_MODELE] [char] (7) COLLATE French_CI_AS NOT NULL ,
    [NUM_CENTRE] [char] (5) COLLATE French_CI_AS NOT NULL ,
    [NUM_SERIE] [char] (10) COLLATE French_CI_AS NOT NULL ,
    [PERIODICITE] [numeric](3, 0) NULL ,
    [LIB_EQUIPEMENT] [char] (30) COLLATE French_CI_AS NULL ,
    [PLANIFICATON] [datetime] NULL ,
    [NUM_CONTRAT] [char] (5) COLLATE French_CI_AS NULL
    ) ON [PRIMARY]
    GO

    CREATE TABLE [A377].[CONTRAT] (
    [NUM_CONTRAT] [char] (5) COLLATE French_CI_AS NOT NULL ,
    [NUM_CENTRE] [char] (5) COLLATE French_CI_AS NOT NULL ,
    [NUM_CLIENT] [char] (5) COLLATE French_CI_AS NOT NULL ,
    [DATE_RESILIATION] [datetime] NULL ,
    [DATE_RECONDUCTION] [datetime] NULL ,
    [MONTANT_CONTRAT] [decimal](9, 2) NULL ,
    [DATE_CONTRAT] [datetime] NULL ,
    [ETAT_CTR] [numeric](1, 0) NOT NULL
    ) ON [PRIMARY]
    GO

    ALTER TABLE [A377].[EQUIPEMENT] WITH NOCHECK ADD
    CONSTRAINT [DF__EQUIPEMEN__NUM_C__7F2BE32F] DEFAULT ('0000') FOR [NUM_CONTRAT],
    CONSTRAINT [PK_EQUIPEMENT] PRIMARY KEY CLUSTERED
    (
    [NUM_SERIE]
    ) ON [PRIMARY]
    GO

    ALTER TABLE [A377].[CONTRAT] WITH NOCHECK ADD
    CONSTRAINT [DF__CONTRAT__ETAT_CT__01142BA1] DEFAULT ('0') FOR [ETAT_CTR],
    CONSTRAINT [PK_CONTRAT] PRIMARY KEY CLUSTERED
    (
    [NUM_CONTRAT]
    ) ON [PRIMARY]
    GO

    ALTER TABLE [A377].[EQUIPEMENT] ADD
    CONSTRAINT [FK_EQUIPEME_CIF_4_MODELE] FOREIGN KEY
    (
    [NUM_MODELE]
    ) REFERENCES [A377].[MODEL] (
    [NUM_MODELE]
    ),
    CONSTRAINT [FK_EQUIPEME_CIF_5_CENTRE_I] FOREIGN KEY
    (
    [NUM_CENTRE]
    ) REFERENCES [A377].[CENTRE_INFO] (
    [NUM_CENTRE]
    ),
    CONSTRAINT [FK_EQUIPEMENT_CONTRAT] FOREIGN KEY
    (
    [NUM_CONTRAT]
    ) REFERENCES [A377].[CONTRAT] (
    [NUM_CONTRAT]
    )
    GO

    ALTER TABLE [A377].[CONTRAT] ADD
    CONSTRAINT [FK_CONTRAT_CONCERNE_CENTRE_I] FOREIGN KEY
    (
    [NUM_CENTRE]
    ) REFERENCES [A377].[CENTRE_INFO] (
    [NUM_CENTRE]
    ),
    CONSTRAINT [FK_CONTRAT_SIGNE_CLIENT] FOREIGN KEY
    (
    [NUM_CLIENT]
    ) REFERENCES [A377].[CLIENT] (
    [NUM_CLIENT]
    )
    GO

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    490
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 490
    Par défaut
    Oup my default est toujours là !!
    je l'enlève..

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    490
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 490
    Par défaut
    Et ça marche, en fait j'avais enlevé le defaut dans la table contrat
    Merci de ton aide

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

Discussions similaires

  1. Problème clé étrangère
    Par mathieu_t dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 04/04/2006, 23h04
  2. problème avec les dates nulles
    Par shingo dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 30/09/2005, 12h32
  3. pb de jointure : cas ou une clé étrangère est à NULL
    Par tiboleo dans le forum Langage SQL
    Réponses: 4
    Dernier message: 19/11/2004, 11h31
  4. [SQL SERVER 2000] Problème clef étrangére
    Par Tankian dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 11/05/2004, 10h44
  5. [servlet]problème de variable jamais nulle
    Par omega dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 18/03/2004, 09h31

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