我怀着极大的热情阅读了题为Migrate from MySQL to PostgreSQL on Linux (Kubuntu)的问题。星球大战的主题让它变得更加有趣。但是我遇到了一个关于PostgreSQL中唯一约束的问题。
我密切关注上面的帖子,使用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让我走到这一步;-)