oracle 恢复表违反主键_给表追加主键-----报错ORA-02437: 无法验证 (DENGCHAO.TEST) - 违反主键...

由于 这次 项目 做了 数据库 迁移(从 mysql 转到oracle  用的是navicat) 的工具  所以导致很多主键都丢失了

导致数据库很多 数据的id重复  导致系统修改一条数据的时候 出现很多值相同  郁闷了大半天

然后 打算在plsql中 给现有的某张表  追加主键

教科书形式 如下

/*

1、创建表的同时创建主键约束

(1)无命名

create table student (  studentid int primary key not null,  studentname varchar(8),  age int);

(2)有命名

create table students (    studentid int ,    studentname varchar(8),    age int,    constraint yy primary key(studentid));

2、删除表中已有的主键约束

(1)有命名

alter table students drop constraint yy;

(2)无命名

可用 SELECT   *   from   user_cons_columns;

查找表中主键名称得student表中的主键名为SYS_C002715

alter table student drop constraint SYS_C002715;

3、向表中添加主键约束

alter table student add constraint pk_student primary key(studentid);

*/

实际项目用如下:

alter table SDINTCALENDAR

add constraint SDINTCALENDAR_PRIMARYKEY primary key (ID)

using index

tablespace DEV2_DATA

pctfree 10

initrans 2

maxtrans 255

storage

(

initial 64K

next 1M

minextents 1

maxextents unlimited

);

结果报错 ORA-02437: 无法验证 (DENGCHAO.TEST) - 违反主键

追加主键之前  必须 先删除或修改原有重复id 的记录 就可以了

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值