Re: ALTER TABLE ( smallinto -> boolean ) ...
От | David Fetter |
---|---|
Тема | Re: ALTER TABLE ( smallinto -> boolean ) ... |
Дата | |
Msg-id | 20050829232445.GE13074@fetter.org обсуждение исходный текст |
Ответ на | ALTER TABLE ( smallinto -> boolean ) ... ("Marc G. Fournier" <scrappy@postgresql.org>) |
Список | pgsql-hackers |
On Mon, Aug 29, 2005 at 08:15:41PM -0300, Marc G. Fournier wrote: > > I have a table with several 'smallint' fields that I'd like to convert to > booleean ... the data in each is either 0 or 1, and: > > # select '1'::boolean; > bool > ------ > t > (1 row) > # select '0'::boolean; > bool > ------ > f > (1 row) > > so they do cast as expected ... but, if I try to do the ALTER, I get: > > # ALTER TABLE table ALTER COLUMN field1 type boolean; > ERROR: column "field1" cannot be cast to type "pg_catalog.bool" > Should this not work? If not, is there a way to do it so that it will, > without having to reload the whole table? ALTER TABLE "table" ALTER COLUMN field1 TYPE boolean USING CASE field1 WHEN 0 THEN false ELSE true END; /* or something to this effect */ HTH :) Cheers, D -- David Fetter david@fetter.org http://fetter.org/ phone: +1 510 893 6100 mobile: +1 415 235 3778 Remember to vote!
В списке pgsql-hackers по дате отправления: