sql - 使用多个重命名重命名表达式 postgresql 时出现语法错误
问题描述
我正在尝试编写一个一次重命名多个表列的查询。根据文档,语法是:
ALTER TABLE table_name
RENAME old_col_a AS new_col_a
, RENAME old_col_b AS new_col_b...;
但是,在这样做时,我会在第一个 RENAME 子句之后的逗号上得到一个语法错误:
ERROR: syntax error at or near ","
LINE 3: , RENAME
^
SQL state: 42601
Character: 1
该查询适用于多个 DROP/ALTER/ADD 列和单个 RENAME。我一生都无法弄清楚为什么会发生此错误。
解决方案
您需要使用多个ALTER
语句:
ALTER TABLE table_name
RENAME COLUMN old_col_a TO new_col_a;
ALTER TABLE table_name
RENAME COLUMN old_col_b TO new_col_b;
除了 RENAME、SET SCHEMA、ATTACH PARTITION 和 DETACH PARTITION 之外,所有作用于单个表的 ALTER TABLE 形式都可以组合成一个列表,其中包含要一起应用的多个更改。例如,可以在单个命令中添加几列和/或更改几列的类型。这对于大桌子特别有用,因为只需要在桌子上进行一次传递。
推荐阅读
- java - 我可以从不同区域的 LocalDateTime 获得正确的日期时间吗?
- math - 从大二进制数转换时十进制值的哈希冲突概率
- python-3.x - pyinstaller 的问题并没有显示我创建的所有内容
- flutter - 如何从数据库 sql 中获取值,然后将其放入带控制器的 Switch() 中
- java - 为什么我的 JDBC SQLite 数据库中的“@”附近出现 java.sql.SQLException?
- php - Woocommerce - 删除自定义费用
- selenium-webdriver - Jmeter Groovy webdriver By.xpath
- javascript - 当我单击下一个或上一个时,缩略图不会更改
- kiwi-tcms - 我在哪里可以找到关于 json-rpc 的 kiwi tcms 参数信息?
- node.js - 简单的反应适用于 npm start 但不适用于 nohup npm start &