我用的是PostgreSQL 9.x、 我想重命名一个表.此SQL代码:

CREATE TABLE new (id int);
ALTER TABLE new RENAME TO old;
DROP TABLE old;

正确重命名表.但这段SQL代码:

CREATE SCHEMA domain;
CREATE TABLE domain.old (id int);
ALTER TABLE domain.old RENAME TO domain.new;

失败,出现错误:

错误:在""处或附近出现语法错误

"那个"下划线是"域"和"新"之间的一个

推荐答案

一种方法是:

ALTER TABLE domain.old RENAME TO new

其他方式:

SET search_path TO domain;
ALTER TABLE old RENAME TO new;

search_path美元的文件.

Postgresql相关问答推荐

PostgreSQL数据文件是否仅在判断点期间写入磁盘?

如何将存储的、生成的列添加到非常大的表中?

从数据集中提取彼此喜欢的用户(&Q;)

PostgreSQL\d命令:有办法只 Select 一列吗?

将XML解析从T-SQL迁移到Postgres时出现问题

在rust中,有什么方法可以从sqlx::query_with中返回rows_infected以及行本身?

从单选插入到多个表

在 postgresql 数据库 timestampz 中保留用户偏移量

Postgres 唯一 JSON 数组聚合值

PG::TRDeadlockDetected:ERROR: deadlock detected

如何在 Postgres 中的列上删除唯一约束?

PostgreSQL 可以对数组元素有唯一性约束吗?

从 psycopg2 异常中获取错误消息

SQL:列为某个值时的唯一约束

与 Oracle 的 CONNECT BY ... START WITH 等效的 PostgreSQL 语法是什么?

仅在存在时重命名列

错误:ERROR: table name specified more than once

每个数据库提供程序类型允许的最大参数数是多少?

Array Push的 Postgres 数组追加和数组长度

查询 JSON 列中的数组元素