在PostgreSQL中,如果我需要重命名和更改列数据类型,我应该运行两个单独的查询来执行此操作.
要重命名:
ALTER TABLE <tablename> RENAME <oldcolumn> TO <newcolumn>
Run Code Online (Sandbox Code Playgroud)
并更改列类型:
ALTER TABLE <tablename> ALTER COLUMN <columnname> <columntype>.
Run Code Online (Sandbox Code Playgroud)
但有没有办法用单个查询来完成这两个工作,如跟随MySQL查询:
ALTER TABLE <tableName> CHANGE COLUMN <oldcolumnname> <newcolumnname> <newtype>
Run Code Online (Sandbox Code Playgroud)
Cra*_*ger 81
在PostgreSQL中,ALTER TABLE
可以进行一系列操作.所以:
ALTER TABLE <tablename> RENAME <oldcolumn> TO <newcolumn>;
ALTER TABLE <tablename> ALTER COLUMN <columnname> TYPE <newtype>;
Run Code Online (Sandbox Code Playgroud)
是相同的
ALTER TABLE <tablename>
ALTER COLUMN <columnname> TYPE <newtype>
RENAME <oldcolumn> TO <newcolumn>;
Run Code Online (Sandbox Code Playgroud)
但是......为什么?IIRC重命名不会导致全表扫描,因此在一次事务中单独执行这两个语句没有任何好处.你实际上试图用这个解决什么问题?
归档时间: |
|
查看次数: |
50575 次 |
最近记录: |