Entering the following command into a PostgreSQL interactive terminal results in an error:
ALTER TABLE tbl_name ALTER COLUMN col_name varchar (11);
What is the correct command to alter the data type of a column?
Entering the following command into a PostgreSQL interactive terminal results in an error:
ALTER TABLE tbl_name ALTER COLUMN col_name varchar (11);
What is the correct command to alter the data type of a column?
See documentation here: http://www.postgresql.org/docs/current/interactive/sql-altertable.html
ALTER TABLE tbl_name ALTER COLUMN col_name TYPE varchar (11);
some cases
and what are those cases? –
Hippocras nullif
expression, particularly if you've already had a record with a null value on the field/column that you're looking to change. In my case, i was trying to change the column type from varchar
to uuid
, but i have null value in the field that i'd like to change. So i got an invalid input syntax error. To resolve the situation i combine the alter statement with a nullif
expression such follow: alter table user alter column branch_id type uuid using (nullif(branch_id,''))::uuid;
–
Dowel col_name::text::real;
–
Bencion If data already exists in the column you should do:
ALTER TABLE tbl_name ALTER COLUMN col_name TYPE integer USING (NULLIF(col_name, '')::integer);
As pointed out by @nobu and @jonathan-porter in the comments to @derek-kromm's answer, somewhat cryptically.
Cool @derek-kromm, Your answer is accepted and correct, But I am wondering if we need to alter
more than the column. Here is how we can do.
ALTER TABLE tbl_name
ALTER COLUMN col_name TYPE varchar (11),
ALTER COLUMN col_name2 TYPE varchar (11),
ALTER COLUMN col_name3 TYPE varchar (11);
Cheers!! Read Simple Write Simple
© 2022 - 2024 — McMap. All rights reserved.
ALTER TABLE tbl_name ALTER COLUMN col_name TYPE integer USING col_name::integer;
– Demission