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

Langage SQL Discussion :

Problème d'insertion à cause d'une CI


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 13
    Points : 7
    Points
    7
    Par défaut Problème d'insertion à cause d'une CI
    Bonjour.

    Voila j'au un petit probème d'insertion de données dans une table.

    Le code de création est le suivant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    CREATE TABLE CATEGORIE(
    id_categorie integer PRIMARY KEY,
    Nom_Categorie VARCHAR2(30),
    sous_categorie REFERENCES CATEGORIE(id_categorie)
    );
    par exemple lors d'une insertion de ce type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     insert into categorie values(1,'Art et Antiquités',2);
    Cela va renvoyer une erreur puisque la catégorie 2 n'existe pas encore.

    Donc es ce que j'ai mal raisonné en créant cette table et donc dois-je créer une seconde table ou y-t-il une autre solution ?


    Petite question à part es ce que la syntaxe :

    "sous_categorie REFERENCES CATEGORIE(id_categorie)"

    et celle-ci :

    "sous_categorie INTEGER,
    CONSTRAINT sous_categorie FOREIGN KEY(sous_categorie) REFRENCES CATEGORIE(id_categorie)" donnent la même chose au final ?


    Merci.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 94
    Points : 113
    Points
    113
    Par défaut
    Bonjour

    Je pense qu'il n'y à pas de problème spécifique à ta description.
    Avec deux tables il fallait créer aussi l'enregistrement '2' avant enregistrement '1'.
    C’est le programme qui doit envoyer les données correctes.
    Le seul « problème » est la création des enregistrements sans 'sous_categorie'. Dans ce cas il suffisait d’insérer la sous-catégorie nulle .

    Stane

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Ok mais cela voudrait dire qu'il faut d'abord que je crée les enregistrements sans entrer l'id de la sous-catégorie puis ensuite d'aller dans la table et de mettre le numéro de la sous-catégorie qui correspond ?

    Par exemple ces enregistrements :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    insert into categorie values(1,'Art et Antiquités',2);
    insert into categorie values(2,'meubles anciens',3);
    insert into categorie values(3,'Tables',NULL);
    Lors de l'execution ca ne va pas aller puisque la cat 2 n'existe pas encore

    si je veux que ca marche je dois faire comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    insert into categorie values(1,'Art et Antiquités',NULL);
    insert into categorie values(2,'meubles anciens',NULL);
    insert into categorie values(3,'Tables',NULL);
    et ensuite je dois aller entrer dans la table et faire mes manip ?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 94
    Points : 113
    Points
    113
    Par défaut
    C'est bien ça.

    Je ne sais pas si c'est SQL standard, mais Oracle accepte aussi
    insert into categorie values(1,'Art et Antiquités',1);


    "et ensuite je dois aller entrer dans la table et faire mes manip ? "

    Pas d'interface utilisateur qui contrôle l'ordre de la saisie?

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Non en fait la c'est juste pour insérer des valeurs comme ca dans la table pour pouvoir établir un jeu de fonctionnalitées y pas d'interface utilisateur.

  6. #6
    Expert éminent
    Homme Profil pro
    Big Data / Freelance EURL
    Inscrit en
    Mars 2003
    Messages
    2 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Big Data / Freelance EURL

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 124
    Points : 7 291
    Points
    7 291
    Par défaut
    et ben il n'y a pas de miracles: tu dois alimenter tes tables dans le bon ordre en commençant par les tables les plus "éloignées".

    Sinon il y a la solution bourrin de désactiver toutes les contraintes d'intégrité, de remplir dans le désordre, mais bonjour les soucis en réactivant les contraintes. A éviter.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    En fait le je suis obliger soit de rentrer en premier les catégoriesdont le niveau est le plus bas donc c'est à dire qui n'ont pas de sous-catégorie et ensuite de remonter jusqu'au catégories principales.

    Ou alors je rentre chacune des catégories avec une valeur nulle dans la colonne sous-catégorie et je vais inséré moi-même les sous catégories après.

    Bon évidemment ce sont des insertions brutes dans la base sans interface utilisateur quoi.

Discussions similaires

  1. [MySQL] problème d'insertion de données à une base avec le php
    Par bibaa dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 19/08/2010, 01h11
  2. problème d'insertion à partir d'une fonction
    Par abir_rzg dans le forum Débuter
    Réponses: 3
    Dernier message: 19/08/2009, 10h08
  3. [AC-2007] problème de suppression à cause d'une apostrophe
    Par MAMANHOU dans le forum IHM
    Réponses: 2
    Dernier message: 17/04/2009, 15h50
  4. probleme d'insertion ç cause d'une association 0,1
    Par thor76160 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/03/2009, 10h19
  5. Réponses: 9
    Dernier message: 04/03/2006, 20h36

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