【问题标题】:ERROR: duplicate key value violates unique constraint错误:重复键值违反唯一约束
【发布时间】:2020-02-15 23:42:12
【问题描述】:

我正在尝试将 csv 文件导入到我的下表中,但我不断收到此错误:

错误:重复键值违反唯一约束“tmdb_5000_movies_production_companies_key” 详细信息:密钥 (production_companies)=([{iso_3166_1: US, name: United States of America}]) 已经存在。 上下文:复制 tmdb_5000_movies,第 5 行

-- 创建新表

CREATE TABLE tmdb_5000_movies (
    "budget" INT,   
    "genres" VARCHAR UNIQUE,
    "homepage" VARCHAR UNIQUE,  
    "id" INT,   
    "keywords" VARCHAR UNIQUE,
    "original_language" VARCHAR,    
    "original_title" VARCHAR,
    "overview" VARCHAR,
    "popularity" DEC,
    "production_companies" VARCHAR UNIQUE,      
    "production_countries" VARCHAR UNIQUE,      
    "release_date" DATE,    
    "revenue" BIGINT,
    "runtime" INT,
    "spoken_languages" VARCHAR UNIQUE,  
    "status" VARCHAR,
    "tagline" VARCHAR,
    "title" VARCHAR,    
    "vote_average" DEC, 
    "vote_count" INT
);

我已经尝试更改数据类型,但我不知道还有什么办法。对此非常新,我能得到任何类型的帮助都将不胜感激!

【问题讨论】:

    标签: sql postgresql


    【解决方案1】:

    如果列具有UNIQUE 约束,则不允许两个表行在该列中具有相同的值(除非它是NULL 值)。

    要么删除UNIQUE 约束,要么清理数据。

    如果您希望列的组合是唯一的,则必须在多个列上定义UNIQUE 约束:

    CREATE TABLE t (
       col1 type1,
       col2 type2,
       UNIQUE (col1, col2)
    );
    

    此外,每个表都应该有一个主键。

    【讨论】:

      猜你喜欢
      • 2016-07-27
      • 2011-10-17
      • 2012-03-03
      • 2018-08-26
      • 2021-10-23
      • 1970-01-01
      • 1970-01-01
      • 2016-10-24
      • 2014-10-11
      相关资源
      最近更新 更多