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 :

probele d'ajout dans une table


Sujet :

MS SQL Server

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 34
    Points : 28
    Points
    28
    Par défaut probele d'ajout dans une table
    bonjour
    j'arrive pas a ajouter dans ma table voici le message qui s'affiche
    quand je fait rentrer les donnees
    l'instruction INSERT est en conflit avec la contrainte FOREIGN KEY SAME TABLE "FK_ENTITE_ENTITE" le conflit s'est prduit dans la base de donnees
    "taxation".table"dbo.Entite",column identifiant L'nstruction a ete arrete


    voici la requete sql avec laquelle j'ai cree la table elle s'execute sans aucune erreur

    CREATE TABLE [dbo].[Entite](
    [identifiant] [bigint] IDENTITY(1,1) NOT NULL,
    [libelle] [nvarchar](50) COLLATE French_CI_AS NULL,
    [id_entite_mere] [bigint] NULL,
    CONSTRAINT [PK_Entite] PRIMARY KEY CLUSTERED
    (
    [identifiant] ASC
    )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
    ) ON [PRIMARY]

    GO
    USE [Taxation]
    GO
    ALTER TABLE [dbo].[Entite] WITH CHECK ADD CONSTRAINT [FK_Entite_Entite] FOREIGN KEY([id_entite_mere])
    REFERENCES [dbo].[Entite] ([identifiant])

    j'ai besoin de debloquer la situation merci d'avance

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    L'erreur que vous obtenez est une erreur d'intégrité : la valeur que vous essayez d'insérer dans la colonne id_entite_mere de la table Entite n'est pas présente dans la colonne identifiant de cette même table, donc cela ne vérifie pas la contrainte de clé étrangère que vous avez spécifiée

    @++

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 34
    Points : 28
    Points
    28
    Par défaut
    merci elsuket
    vous voulez dire que je dois ajouter la meme valeur dans id_entite_mere et id_entite de la meme table???

  4. #4
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    vous voulez dire que je dois ajouter la meme valeur dans id_entite_mere et id_entite de la meme table???
    C'est ce que spécifie votre contrainte de clé étrangère.

    Un clé étrangère peut référencer la table elle-même :
    Supposons par exemple que l'on stocke dans une même table les membres de familles. Il suffit alors de rendre une colonne avec une clé étrangère optionnelle (NULLable), cette colonne contenant pour les enfants l'identifiant de leur père.

    @++

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 34
    Points : 28
    Points
    28
    Par défaut
    merci d'avoir repondu a ma question
    j ai essayee de donner la meme valeur a id_entite et id_entite_mere et ca donne toujours le meme probleme d'apres votre derniere reponse j ai compris que je peux supprimer la clé etrangere id_entite_mere???

  6. #6
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    C'est à vous de le décider

    Si cette relation est là, c'est qu'il doit y avoir une raison.
    Si cette raison n'en est plus une ou qu'elle ne répond pas ou plus aux contraintes du métier de votre entreprise, vous pouvez la supprimer

    @++

  7. #7
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 917
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 917
    Points : 51 693
    Points
    51 693
    Billets dans le blog
    6
    Par défaut
    Tout ceci fonctionne parfaitement. Votre problème se situe ailleurs !

    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
    CREATE TABLE [dbo].[Entite]
    (
    [identifiant] [bigint] IDENTITY(1,1) NOT NULL,
    [libelle] [nvarchar](50) COLLATE French_CI_AS NULL,
    [id_entite_mere] [bigint] NULL,
    CONSTRAINT [PK_Entite] PRIMARY KEY CLUSTERED
    (
    [identifiant] ASC
    )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
    )
    GO
     
    ALTER TABLE [dbo].[Entite] WITH CHECK ADD CONSTRAINT [FK_Entite_Entite] FOREIGN KEY([id_entite_mere])
    REFERENCES [dbo].[Entite] ([identifiant])
    GO
     
    INSERT INTO [dbo].[Entite] VALUES ('toto', NULL)
    INSERT INTO [dbo].[Entite] VALUES ('titi', 1)
    INSERT INTO [dbo].[Entite] VALUES ('tutu', 1)
     
    SELECT * FROM [dbo].[Entite]
     
    identifiant          libelle                                            id_entite_mere
    -------------------- -------------------------------------------------- --------------------
    1                    toto                                               NULL
    2                    titi                                               1
    3                    tutu                                               1
    Ragardez si vous n'avez pas de déclencheurs ON INSERT...

    A +

  8. #8
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 34
    Points : 28
    Points
    28
    Par défaut
    prbleme resolu
    merci

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

Discussions similaires

  1. ajout dans une table access
    Par k_boy dans le forum MFC
    Réponses: 6
    Dernier message: 05/10/2007, 19h00
  2. requête ajout dans une table
    Par crissud dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 04/04/2007, 20h28
  3. Bouton pour confirmer un ajout dans une table sous Access
    Par cestimagik dans le forum Access
    Réponses: 3
    Dernier message: 31/12/2006, 10h32
  4. Ajout dans une table et relation avec d'autres
    Par climz dans le forum Access
    Réponses: 5
    Dernier message: 12/05/2006, 15h32
  5. big ajout dans une table
    Par bachilbouzouk dans le forum ASP
    Réponses: 4
    Dernier message: 19/04/2005, 10h22

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