Re: Spalte mit not null und deferrable hinzufügen

Lists: pgsql-de-allgemein
From: Thomas Guettler <hv(at)tbz-pariv(dot)de>
To: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Spalte mit not null und deferrable hinzufügen
Date: 2008-06-17 09:36:26
Message-ID: 4857859A.7080808@tbz-pariv.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-de-allgemein

Hallo,

ich möchte eine Spalte mit einem initially deferred not null constraint
hinzufügen.

db=# alter table mytable add column "time" timestamp with time zone not
null deferrable initially deferred;
FEHLER: falsch platzierte DEFERRABLE-Klausel

Laut Doku müsste der Befehl eigentlich funktionieren:

alter table Doku

ADD [ COLUMN ] /column/ /type/ [ /column_constraint/ [ ... ] ]

create table Doku:

where /column_constraint/ is:

[ CONSTRAINT /constraint_name/ ]
{ NOT NULL |
NULL |
UNIQUE /index_parameters/ |
PRIMARY KEY /index_parameters/ |
CHECK ( /expression/ ) |
REFERENCES /reftable/ [ ( /refcolumn/ ) ] [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ]
[ ON DELETE /action/ ] [ ON UPDATE /action/ ] }
[ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]

select version();

version
--------------------------------------------------------------------------------------------
PostgreSQL 8.2.6 on x86_64-unknown-linux-gnu, compiled by GCC gcc (GCC)
4.2.1 (SUSE Linux)

Hat jemand Hinweise?

Thomas

--
Thomas Guettler, http://www.thomas-guettler.de/
E-Mail: guettli (*) thomas-guettler + de


From: "A(dot) Kretschmer" <andreas(dot)kretschmer(at)schollglas(dot)com>
To: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: Spalte mit not null und deferrable hinzufügen
Date: 2008-06-17 10:00:28
Message-ID: 20080617100028.GA26166@a-kretschmer.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-de-allgemein

am Tue, dem 17.06.2008, um 11:36:26 +0200 mailte Thomas Guettler folgendes:
> Hallo,
>
> ich möchte eine Spalte mit einem initially deferred not null constraint
> hinzufügen.
>
> db=# alter table mytable add column "time" timestamp with time zone not
> null deferrable initially deferred;
> FEHLER: falsch platzierte DEFERRABLE-Klausel
>
> Laut Doku müsste der Befehl eigentlich funktionieren:

Nein, laut Doku ebend grad nicht:

Currently, only foreign key constraints are affected by this setting.

http://www.postgresql.org/docs/8.3/interactive/sql-set-constraints.html
unter dem Teil, der DEFERRED beschreibt.

Andreas
--
Andreas Kretschmer
Kontakt: Heynitz: 035242/47150, D1: 0160/7141639 (mehr: -> Header)
GnuPG-ID: 0x3FFF606C, privat 0x7F4584DA http://wwwkeys.de.pgp.net


From: Thomas Guettler <hv(at)tbz-pariv(dot)de>
To: "A(dot) Kretschmer" <andreas(dot)kretschmer(at)schollglas(dot)com>, pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: [pgsql-de-allgemein] Spalte mit not null und deferrable hinzufügen
Date: 2008-06-17 10:24:45
Message-ID: 485790ED.6060307@tbz-pariv.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-de-allgemein

A. Kretschmer schrieb:
> am Tue, dem 17.06.2008, um 11:36:26 +0200 mailte Thomas Guettler folgendes:
>
>> Hallo,
>>
>> ich möchte eine Spalte mit einem initially deferred not null constraint
>> hinzufügen.
>>
>> db=# alter table mytable add column "time" timestamp with time zone not
>> null deferrable initially deferred;
>> FEHLER: falsch platzierte DEFERRABLE-Klausel
>>
>> Laut Doku müsste der Befehl eigentlich funktionieren:
>>
>
> Nein, laut Doku ebend grad nicht:
>
> Currently, only foreign key constraints are affected by this setting.
>
> http://www.postgresql.org/docs/8.3/interactive/sql-set-constraints.html
> unter dem Teil, der DEFERRED beschreibt.
>
Hallo Andreas,

danke für den Hinweis. Das Problem habe ich umgangen.

Gruß,
Thomas

PS: Prinzipiell wäre es schon schön, wenn auch andere Constraints außer
Foreignkey und Constraint Trigger deferrable sind.

--
Thomas Guettler, http://www.thomas-guettler.de/
E-Mail: guettli (*) thomas-guettler + de