In PostgreSQL if I need to rename and change a column data type, I run two separate queries to do so.
To rename:
ALTER TABLE tblName RENAME <oldColumn> TO <newColumn>
and to change column type:
ALTER TABLE tblName ALTER COLUMN <newColumn> <columnType>.
But is there any way to do both of these works with a single query like the following MySQL query:
ALTER TABLE tblName CHANGE COLUMN <oldColumn> <newColumn> <columnType>
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?