sql - 错误:重复键值违反唯一约束
问题描述
我正在尝试将 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
);
我试图改变数据类型,但我不知道还有什么办法。对此很新,我能得到的任何类型的帮助都将不胜感激!
解决方案
如果列有UNIQUE
约束,则不允许两个表行在该列中具有相同的值(除非它是该NULL
值)。
删除UNIQUE
约束或清理数据。
如果您希望列的组合是唯一的,则必须UNIQUE
在多个列上定义约束:
CREATE TABLE t (
col1 type1,
col2 type2,
UNIQUE (col1, col2)
);
此外,每个表都应该有一个主键。