【发布时间】:2011-07-19 02:31:22
【问题描述】:
我怀着极大的热情阅读了题为Migrate from MySQL to PostgreSQL on Linux (Kubuntu) 的问题。 星球大战 主题让它变得更加有趣。但是我在 PostgreSQL 中遇到了一个关于 Unique Constraints 的问题。
我密切关注上面的帖子,使用sqlt 创建了一个 PostgreSQL DDL。思考过程是首先创建模式/表,然后导入数据。但是我的 72 个表中有 57 个使用 CONSTRAINT "userid" UNIQUE ("user_id", "key")
以下是其中一张表的示例:
CREATE TABLE "account_otherserviceinfo" (
"id" serial NOT NULL,
"user_id" bigint NOT NULL,
"key" character varying(50) NOT NULL,
"value" text NOT NULL,
PRIMARY KEY ("id"),
CONSTRAINT "user_id" UNIQUE ("user_id", "key")
);
当我使用 pgadmin3 中的查询工具将这些表复制到我的 PostgreSQL 数据库中时,我收到以下错误:
错误:关系“user_id”已存在 SQL 状态:42P07
我没有设计这个数据库模式。我只是帮助迁移过程。在阅读有关唯一约束的文档时,似乎可以使用相同的名称,只要它位于不同的表中即可。 http://www.postgresql.org/docs/8.3/static/ddl-constraints.html。我是否误解了这一点?
任何建议或指点将不胜感激。
谢谢!
PS:感谢 https://stackoverflow.com/users/59087/dave-jarvis 和 https://stackoverflow.com/users/26534/michael-trausch 让我走到这一步;-)
【问题讨论】:
标签: postgresql unique constraints database-migration