Is there a way to set the PRIMARY KEY in a single "CREATE TABLE AS" statement?

示例——我希望将以下内容写成一条语句,而不是两条:

 CREATE TABLE "new_table_name" AS SELECT a.uniquekey, a.some_value + b.some_value FROM "table_a" AS a, "table_b" AS b WHERE a.uniquekey=b.uniquekey;
 ALTER TABLE "new_table_name" ADD PRIMARY KEY (uniquekey);

一般来说,有没有更好的方法(假设有两个以上的表,例如10个)?

推荐答案

根据手册:create tablecreate table as,您可以:

  • 先用主键输入create table,然后再使用select into
  • 先用create table as,再用add primary key

但不是create table asprimary key都是你想要的.

Postgresql相关问答推荐

Postgres:如何优化在多个表上搜索列的相似性查询?(Pg_Trgm)

我需要一个变量来引用上周的星期五

Postgres-pgloader-默认情况下,在PostgreSQL中将列名转换为小写

在PostgreSQL中是否有与SQLite R*Tree类似功能?

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

错误:用户需要系统密码:postgres

PostgreSQL 中的 Datum 数据类型是什么以及它的用途是什么?

使用来自 docker 图像的 postgres 设置 Keycloak 21

包含间隔在 jooq 和 postgres 中没有按预期工作

PL/pgSQL 中 PL/SQL %ISOPEN 的类似功能是什么?

如何计算过滤器中的百分比

如何让 Flask SQLAlchemy 重用数据库连接?

OpenShift:如何从我的 PC 连接到 postgresql

带有 -C 选项的 pg_restore 不会创建数据库

查询仅属于特定部门的用户

Postgres 类似于 SQL Server 中的 CROSS APPLY

在 postgresql 中将 bool 转换为 int

在 postgres 中创建超级用户

Postgres Hstore 与 Redis - 性能方面

函数中的 SELECT 或 INSERT 是否容易出现竞争条件?