Re: Finding Max Value in a Row
От | Dmitriy Igrishin |
---|---|
Тема | Re: Finding Max Value in a Row |
Дата | |
Msg-id | CAAfz9KMQ_tnnQE=14XfM0cMyToT=Q44EWDDeuJrmjsdZv6_Z1w@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Finding Max Value in a Row (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-sql |
2012/5/14 Tom Lane <tgl@sss.pgh.pa.us>
-- Carlos Mennens <carlos.mennens@gmail.com> writes:
> I'm not understanding why I'm not able to change this column type from
> char to integer?> forza=# ALTER TABLE customersTry "ALTER ... cust_id TYPE integer USING cust_id::integer".
> ALTER COLUMN cust_id TYPE integer;
> ERROR: column "cust_id" cannot be cast to type integer
If you don't specify a USING expression, the command requires an
implicit coercion from one type to the other, and there is none from
char(n) to int. You can force it with an explicit coercion, though.
It strikes me that "cannot be cast" is a poor choice of words here,
since the types *can* be cast if you try. Would it be better if the
message said "cannot be cast implicitly to type foo"? We could also
consider a HINT mentioning use of USING.
Tom, as usual you are right. I find it reasonable to improve the
message and to add the hint into an error report in this case.
message and to add the hint into an error report in this case.
// Dmitriy.
В списке pgsql-sql по дате отправления: