在PostgreSQL中创建表的唯一约束错误(从MySQL迁移)
我非常热情地读了一个名为
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”已存在 我没有设计这个数据库架构.我只是在帮助迁移过程.阅读有关唯一约束的文档时,只要它位于不同的表中,就可以使用相同的名称.我错误解释了这个吗? 任何建议或指示将不胜感激. 谢谢! PS:感谢https://stackoverflow.com/users/59087/dave-jarvis和https://stackoverflow.com/users/26534/michael-trausch让我这么远;-) 解决方法
我不确定你正在阅读的文档的哪一部分,但你误解了它.约束名称必须是全局唯一的.因此,你可以拥有任意数量的UNIQUE(“user_id”,“key”),但你不能将它们中的每一个命名为“user_id”. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |