错误:重复的键值违反了唯一约束

时间:2019-10-19 02:06:46

标签: sql postgresql

我正在尝试将csv文件导入到下面的表中,并且不断出现此错误:

  

错误:重复的键值违反了唯一约束“ tmdb_5000_movies_production_companies_key”   详细信息:密钥(production_companies)=([[{iso_3166_1:US,名称:美利坚合众国}])已经存在。   内容:COPY 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
);

我试图更改数据类型,但是我不知道还有什么其他方法。对此非常新颖,我将获得的任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

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

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

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

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

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