PostgreSQL query to rename and change column type with single query
Solution 1:
In PostgreSQL, ALTER TABLE
can take a series of operations. So:
ALTER TABLE <tablename> RENAME <oldcolumn> TO <newcolumn>;
ALTER TABLE <tablename> ALTER COLUMN <columnname> TYPE <newtype>;
is the same as
ALTER TABLE <tablename>
ALTER COLUMN <columnname> TYPE <newtype>
RENAME <oldcolumn> TO <newcolumn>;
However... why? IIRC the rename won't cause a full-table scan, so there's no benefit over just doing the two statements separately, within one transaction. What problem are you actually trying to solve with this?
Solution 2:
PostgreSQL: Alter table column name and data-type:
ALTER TABLE <TableName>
ALTER [ COLUMN ] column [ SET DATA ] TYPE data_type [ COLLATE collation ] [ USING expression ]
RENAME [ COLUMN ] column TO new_column;
See ALTER TABLE
.