
# 向表中插入数据报错：duplicate key value violates unique constraint "%s"
#### 问题现象
向表中插入数据报错：duplicate key value violates unique constraint "%s"。
```
CREATE TABLE films (
code        char(5) PRIMARY KEY,
title       varchar(40) NOT NULL,
did         integer NOT NULL,
date_prod   date,
kind        varchar(10),
len         interval hour to minute
);
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "films_pkey" for table "films"
CREATE TABLE
INSERT INTO films VALUES ('UA502', 'Bananas', 105, DEFAULT, 'Comedy', '82 minutes');
INSERT INTO films VALUES ('UA502', 'Bananas', 105, '1971-07-13', 'Comedy', '82 minutes');
ERROR:  dn_6003_6004: duplicate key value violates unique constraint "films_pkey"
DETAIL:  Key (code)=(UA502) already exists.
```
#### 原因分析
创建表films时带有主键约束，使用PRIMARY KEY声明主键code，即表中的code字段只能包含唯一的非NULL值。同时主键会为表films创建索引films_pkey。
插入表中的数据code字段值UA502与表中已存在的中code字段值重复，因此插入数据报错。
#### 处理方法
- 方法一：检查数据冲突，修改插入数据。例如，修改示例重复字段UA502为UA509。
  ```
  INSERT INTO films VALUES ('UA509', 'Bananas', 105, '1971-07-13', 'Comedy', '82 minutes');
  INSERT 0 1
  ```
  
- 方法二：删除表films主键约束。
  ```
  ALTER TABLE films DROP CONSTRAINT films_pkey;
  ALTER TABLE
  INSERT INTO films VALUES ('UA502', 'Bananas', 105, '1971-07-13', 'Comedy', '82 minutes');
  INSERT 0 1
  ```
  
 
