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

PostgreSQL Discussion :

Insert dans une table contenant des champs non obligatoires


Sujet :

PostgreSQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 27
    Points : 26
    Points
    26
    Par défaut Insert dans une table contenant des champs non obligatoires
    Bonjour,

    J'ai crée mes tables dans postgreSQL

    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
     
    CREATE TABLE matieres(
            matieres_id                          SERIAL,
            institutions_id                      INTEGER         REFERENCES institutions(institutions_id) ON DELETE RESTRICT,
            matieres_nom                         VARCHAR(30)     NOT NULL UNIQUE,
     
            CONSTRAINT matieres_id_pk PRIMARY KEY (matieres_id)
            );
     
    CREATE TABLE institutions(
            institutions_id                          SERIAL,
            institutions_nom                         VARCHAR(30)     NOT NULL UNIQUE,
     
            CONSTRAINT institutions_id_pk PRIMARY KEY (institutions_id)
            );
    Si je désires faire un insert dans la table matieres, comment puis-je faire un insert dans la table matiere sans spécifier de paramètres pour la colonne institutions_id?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    insert into matieres(institutions_id, matieres_nom) values('', "Base de données"); 
     
    ne fonctionnent pas :-(
     
    merci

  2. #2
    Membre régulier
    Inscrit en
    Octobre 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 76
    Points : 76
    Points
    76
    Par défaut
    Je ne connais pas postgreSQL, mais comme ca, ca donne quoi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into matieres(matieres_nom) values("Base de données");

  3. #3
    Membre expérimenté
    Avatar de Linaa
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    987
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 987
    Points : 1 309
    Points
    1 309
    Par défaut
    Ton champ institutions_id dans la table "matieres" ne doit pas être nul,
    Vu que c'est la clé étrangère d'une clé primaire de la table "institutions" (Une clé primaire n'est jamais nulle).

    Mais tu peux cependant insérer des valeurs <nulles> dans la table "institutions" puis utiliser l'id en tant que clé étrangère
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    insert into institutions (institutions_id,institutions_nom) values(0,"");
     
    insert into matieres(matieres_nom,institutions_id) values("Base de données",0);

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/02/2015, 19h17
  2. Insertion dans une table ayant un champ : table de réference
    Par futur_ingenieur dans le forum Oracle
    Réponses: 4
    Dernier message: 16/01/2013, 16h34
  3. Réponses: 2
    Dernier message: 20/07/2011, 01h15
  4. delete dans une table contenant des primary key
    Par bracket dans le forum Langage SQL
    Réponses: 2
    Dernier message: 28/11/2008, 17h41
  5. Problème avec Insert dans une table contenant deux clés
    Par pure_blue dans le forum Accès aux données
    Réponses: 5
    Dernier message: 23/10/2006, 19h32

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