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

Requêtes PostgreSQL Discussion :

Insert into violates not-null constraint sur une colonne avec DEFAULT


Sujet :

Requêtes PostgreSQL

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Insert into violates not-null constraint sur une colonne avec DEFAULT
    Bonjour à tous,

    Je rencontre un petit souci sur un INSERT.
    Je fais donc un INSERT dans une table contenant une colonne dt_fin défini comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dt_fin timestamp without time zone NOT NULL DEFAULT '9999-12-31 00:00:00'::timestamp without time zone,
    Voici mon INSERT :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT into maTable (id,dt_deb,dt_fin) values (1,'2012-02-17 00:00:00.000000+0100', NULL);
    Et j'a l'exception suivante à l'exécution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    null value in column "dt_fin_valid" violates not-null constraint
    Pourquoi PostgreSql fait un check du NOT-NULL avant de faire le DEFAULT ?
    Merci de votre aide.

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Parce que vous demandez explicitement à la valeur de cette colonne d'être NULL.

    Default remplace l'absence de colonne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO maTable (id,dt_deb) VALUES (1,'2012-02-17 00:00:00.000000+0100');

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Merci de votre réponse rapide.

    J'ai oublié de préciser que cela a toujours très bien fonctionné de la sorte.
    Et depuis quelques temps, je ne sais pas pourquoi cela ne fonctionne plus.
    Je suis en PostgreSql 8.0.

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    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 772
    Points : 52 732
    Points
    52 732
    Billets dans le blog
    5
    Par défaut
    Sans doute quelques chose de mal implémenté à la base et qui a été rectifié dans une version ultérieure !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. Position des composants sur une frame avec layout null
    Par bellemlih dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 14/12/2007, 22h13
  2. INDEX sur une colonne qui peut être NULL
    Par dorian53 dans le forum Requêtes
    Réponses: 15
    Dernier message: 29/11/2007, 17h13
  3. constraint sur une date
    Par DJERDJAR YACINE dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 31/07/2007, 13h48
  4. [SYBASE ASE] Rajouter une contrainte null sur une colonne
    Par Little_Goldo dans le forum Sybase
    Réponses: 1
    Dernier message: 09/02/2005, 10h48
  5. Contraite NULL sur une colonne en fonction d'une autre colon
    Par speedy1496 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/04/2004, 19h29

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