我在Postgres 9.1中有一个简单的表格创建脚本.我需要它来创建表格

CREATE TABLE IF NOT EXISTS "mail_app_recipients"
(
    "id_draft" Integer NOT NULL,
    "id_person" Integer NOT NULL
) WITH (OIDS=FALSE); -- this is OK

ALTER TABLE "mail_app_recipients" ADD PRIMARY KEY IF NOT EXISTS ("id_draft","id_person");
-- this is problem since "IF NOT EXISTS" is not allowed.

如何解决这个问题?提前谢谢.

推荐答案

为什么不在创建表中包含PK定义:

CREATE TABLE IF NOT EXISTS mail_app_recipients
(
    id_draft Integer NOT NULL,
    id_person Integer NOT NULL,
    constraint pk_mail_app_recipients primary key (id_draft, id_person)
)

Postgresql相关问答推荐

有没有方法可以设置postGER中非空列的默认值?

Select 二维数组中的特定元素PostgreSQL

Pogresql性能中的枚举与文本数据类型

SQLX::Query!带有UUID::UUID的宏在Rust中编译失败

时间戳的postgreSQL-to_char如果为零,则不显示微秒

使用postgres在go测试容器中使用tern迁移

右连接 postgresql 出现语法错误

Gorm 创建表单数据文件上传错误

无法从外部连接到在 AWS EC2 实例上运行的 Postgres

EF Core添加迁移目标postgreeSQL返回无法加载类型'Microsoft.EntityFrameworkCore.Storage.IRelationalValueBufferFactoryFactory

Cloud SQL 时间点 数据驻留

为什么这里的默认格式不同? (ISO 8601 的两种不同实现)

如何将 grafana 与 Google Cloud SQL 集成

从左连接更新 Postgres

更新列或列或列时触发触发

为什么 PostgreSQL 数组访问在 C 中比在 PL/pgSQL 中快得多?

Rails 验证数组中的值

PostgreSQL 表变量

如何为 postgres 编写 DELETE CASCADE?

实时监控 PostgreSQL 查询的应用程序?