Trong PostgreSQL, ALTER TABLE
có thể thực hiện một loạt các hoạt động. Vì vậy:
ALTER TABLE <tablename> RENAME <oldcolumn> TO <newcolumn>;
ALTER TABLE <tablename> ALTER COLUMN <columnname> TYPE <newtype>;
giống như
ALTER TABLE <tablename>
ALTER COLUMN <columnname> TYPE <newtype>
RENAME <oldcolumn> TO <newcolumn>;
Tuy nhiên ... tại sao? IIRC việc đổi tên sẽ không gây ra quá trình quét toàn bảng, vì vậy sẽ không có lợi gì nếu chỉ thực hiện hai câu lệnh riêng biệt, trong một giao dịch. Vấn đề bạn thực sự đang cố gắng giải quyết là gì?