I tried adding a not-null column in one step and got a collation
error for a different column. Adding the column in several steps
works:


itd=> alter table livedata add column pricechanged timestamp not null default 
current_timestamp;
ERROR:  no collation was derived for column "whois_b" with collatable type 
citext
TIP:  Use the COLLATE clause to set the collation explicitly.

itd=> \d livedata
                               Table "public.livedata"
    Column    |            Type             |                Modifiers
--------------+-----------------------------+-----------------------------------------
 accessid     | integer                     | not null
 sp_b         | double precision            | default 0
 csh_b        | double precision            | default 0
 sp_a         | double precision            | default 0
 csh_a        | double precision            | default 0
 asw_b        | double precision            | default 0
 asw_a        | double precision            | default 0
 amount       | character varying(25)       | default ' '::character varying
 bench        | character varying(25)       | default NULL::character varying
 updated_b    | date                        |
 updated_a    | date                        |
 whois_b      | citext                      | default '          '::character 
varying
 whois_a      | citext                      | default '          '::character 
varying
 b_orig       | double precision            | default 0
 a_orig       | double precision            | default 0
 lcontrol     | integer                     | not null default 0
 rcontrol     | integer                     | not null default 0
 hlcleared    | boolean                     | not null default false
 yield_b      | double precision            | default 0
 yield_a      | double precision            | default 0

itd=> alter table livedata add column pricechanged timestamp;
ALTER TABLE
itd=> alter table livedata alter column pricechanged set default 
current_timestamp;
ALTER TABLE
itd=> update livedata set pricechanged = default;
UPDATE 6000
itd=> alter table livedata alter column pricechanged set not null;
ALTER TABLE

--
Christian


--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to