Re: "Named" column default expression

From: Thomas Kellerer <spam_eater(at)gmx(dot)net>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: "Named" column default expression
Date: 2011-10-28 08:52:15
Message-ID: j8dqef$3s4$1@dough.gmane.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Thom Brown, 28.10.2011 10:10:
> On 28 October 2011 08:29, Thomas Kellerer<spam_eater(at)gmx(dot)net> wrote:
>> Hello,
>>
>> I just noticed that Postgres allows the following syntax:
>>
>> create table foo
>> (
>> id integer constraint id_default_value default 42
>> );
>>
>> But as far as I can tell the "constraint id_default_value" part seems to be
>> only syntactical sugar as this is stored nowhere. At least I couldn't find
>> it going through the catalog tables and neither pg_dump -s or pgAdmin are
>> showing that name in the generated SQL source for the table.
>>
>> It's not important, I'm just curious why the syntax is accepted (I never saw
>> a default value as a constraint) and if there is a way to retrieve that
>> information once the table is created.
>
> It would do something with it if you actually defined a constraint
> after it, but since you didn't, it throws it away since there's
> nothing to enforce. So if you adjust it to:
>
> create table foo
> (
> id integer constraint id_default_value check (id> 4) default 42
> );
>
> a constraint for that column will be created with the specified name.

Thanks, makes somewhat sense.

I'm wondering why this doesn't throw an error then.

Regards
Thomas

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Louis Voo 2011-10-28 09:10:24 pg_dump error unexpected chunk number
Previous Message Adrian Schreyer 2011-10-28 08:50:14 Re: Custom data type in C with one fixed and one variable attribute