天天看点

解决SQL设置主键时报错:ORA-02437无法验证-违反主键

一、问题描述

创建了一张表,

create table z_person
(
id_p int,
last_name varchar(50),
first_name varchar(50),
address varchar(255),
city varchar(100)
);
           

然后向里面插入数据的时候,发现忘记设置主键了,导致插入很多重复的数据

insert into z_person values(1,'翠花','苗','华星现代产业园','杭州');
           
解决SQL设置主键时报错:ORA-02437无法验证-违反主键

于是想设置一下主键,遇到报错:

alter table z_person add primary key(id_p);
           
解决SQL设置主键时报错:ORA-02437无法验证-违反主键

二、解决方法

1.原因是在设置主键的时候,数据库表中已经存在主键字段重复的数据

解决SQL设置主键时报错:ORA-02437无法验证-违反主键

2.删除相应的重复数据。

解决SQL设置主键时报错:ORA-02437无法验证-违反主键

3.再次设置主键,即可设置成功。

alter table z_person add primary key(id_p);
           
解决SQL设置主键时报错:ORA-02437无法验证-违反主键