【发布时间】:2015-04-27 16:11:26
【问题描述】:
为了给出一些上下文,命令是在任务内部发出的,许多任务可能同时从多个工作人员发出相同的命令。
每个任务都尝试创建一个 postgres 架构。我经常收到以下错误:
IntegrityError: (IntegrityError) duplicate key value violates unique constraint "pg_namespace_nspname_index" DETAIL: Key (nspname)=(9621584361) already exists. 'CREATE SCHEMA IF NOT EXISTS "9621584361"'
Postgres 版本是 PostgreSQL 9.4rc1。
这是 Postgres 中的错误吗?
【问题讨论】:
-
看起来 IF EXISTS 仅在提交后有效,而不是在尚未提交的事务期间。
-
CREATE SCHEMA自 Postgres 9.3 以来就有IF NOT EXISTS子句,所以我不希望您的 9.4rc1 版本与它有任何关系。但你还是应该upgrade to the latest stable release, currently 9.4.1。
标签: postgresql concurrency ddl catalog