Skip site navigation (1) Skip section navigation (2)

Re: Finding Max Value in a Row

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Carlos Mennens <carlos(dot)mennens(at)gmail(dot)com>
Cc: Viktor Bojović <viktor(dot)bojovic(at)gmail(dot)com>, "PostgreSQL (SQL)" <pgsql-sql(at)postgresql(dot)org>
Subject: Re: Finding Max Value in a Row
Date: 2012-05-14 03:11:43
Message-ID: 2250.1336965103@sss.pgh.pa.us (view raw or flat)
Thread:
Lists: pgsql-sql
Carlos Mennens <carlos(dot)mennens(at)gmail(dot)com> writes:
> I'm not understanding why I'm not able to change this column type from
> char to integer?

> forza=# ALTER TABLE customers
> ALTER COLUMN cust_id TYPE integer;
> ERROR:  column "cust_id" cannot be cast to type integer

Try "ALTER ... cust_id TYPE integer USING cust_id::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.

			regards, tom lane

In response to

Responses

pgsql-sql by date

Next:From: Steven CrandellDate: 2012-05-14 05:32:18
Subject: Re: syncing - between databases
Previous:From: Carlos MennensDate: 2012-05-14 02:38:01
Subject: Re: Finding Max Value in a Row

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group