postgresql - 在一次查询中更改 PostgreSQL 中的多个列名称和数据类型
问题描述
说明:我想更改列名及其数据类型。我有多个列,并希望在一个查询中更改所有列及其数据类型。
我试过的
- 更改列类型然后重命名它。
ALTER TABLE customers ALTER COLUMN phone TYPE numeric
RENAME COLUMN phone TO contact_phone
和
ALTER TABLE customers ALTER COLUMN phone TYPE numeric,
RENAME COLUMN phone TO contact_phone
- 更改多列类型然后重命名它。
ALTER TABLE customers
ALTER COLUMN phone TYPE numeric,
ALTER COLUMN address TYPE text,
RENAME COLUMN phone TO contact_phone,
RENAME COLUMN address TO contact_address
- 试图更改所有列数据类型然后重命名它
ALTER TABLE customers
ALTER COLUMN phone TYPE numeric,ALTER COLUMN address TYPE text
和
ALTER TABLE customers
RENAME COLUMN phone TO contact_phone,RENAME COLUMN address TO contact_address
问题:
每次我在SQL StateRENAME
子句中
遇到错误时:42601
谁能告诉我这个查询有什么问题?
解决方案
虽然您可以在一个语句中更改多个列的数据类型,但一次ALTER TABLE
只能重命名一个列。所以你将不得不使用几个ALTER TABLE
语句。
我建议在单个事务中运行所有语句,这样您只需获取ACCESS EXCLUSIVE
一次锁。
推荐阅读
- c# - 传递给 VIewDataDictionary 的 LINQ 查询模型项的类型为“Microsoft.EntityCoreFramework.Query.Internal.EntityQuerable”
- node.js - Find user data who not logged in since last n days in mongoose + node js
- c# - 带有接口和具体类型参数的工厂注入
- sql - I want to create an Excel like pivot using SQL
- javascript - How to use IMPORTXML function on google sheets scrape data of JavaScript content/elements from websites
- mongodb - 在 MongoDB 中重命名集合
- vue.js - 在 Vue 中访问 {__ob__: Observer}
- ios - 安装 React 时出现 React Native 错误(ReferenceError:找不到变量:React)?
- javascript - 温斯顿轮换日志文件名包括当天的日期
- android - 如何给 RotationAnimation 一个稳定的速度?