sergio santos escreveu:
> Olá pessoal
> Toda vez que crio um campo em uma tabela do tipo "character varying" e
> no futuro, quando preciso mudar o tipo do campo para integer, o
> PostgreSQL me retorna a seguinte mensagem:
>
> "
>
> *Erro de SQL:*
>
> ERRO: coluna "x" não pode ser convertida para tipo "pg_catalog.int4"
>
> *Indicação de entrada :*
> ALTER TABLE teste ALTER COLUMN x TYPE integer
>
> "
> ps. é claro que todos os dados do campo são integer
>
Veja a cláusula "USING expression".
bdteste=# CREATE TEMP TABLE foo(x varchar);
CREATE TABLE
bdteste=# INSERT INTO foo VALUES ('11'), ('222'), ('333');
INSERT 0 3
bdteste=# SELECT * FROM foo;
x
-----
11
222
333
(3 registros)
bdteste=# ALTER TABLE foo ALTER COLUMN x TYPE INT4;
ERRO: coluna "x" não pode ser convertida para tipo "int4"
bdteste=# ALTER TABLE foo ALTER COLUMN x TYPE INT4 USING x::int;
ALTER TABLE
bdteste=# \d foo
Tabela "pg_temp_1.foo"
Coluna | Tipo | Modificadores
--------+---------+---------------
x | integer |
bdteste=# SELECT * FROM foo;
x
-----
11
222
333
(3 registros)
Osvaldo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral