[20160526]建立主键问题.txt

简介: [20160526]建立主键问题.txt --生产系统有1个表没有主键,要求建立发现无法建立,有重复.而且这个索引查询是需要. --实际上可以限制以后的记录不再重复,以前我自己也遇到过,做一个记录.

[20160526]建立主键问题.txt

--生产系统有1个表没有主键,要求建立发现无法建立,有重复.而且这个索引查询是需要.
--实际上可以限制以后的记录不再重复,以前我自己也遇到过,做一个记录.

1.环境:
SCOTT@book> @ &r/ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

create table t (id int,name varchar2(100));
insert into t values(1,'AAAAA');
insert into t values(2,'BBBBB');
insert into t values(3,'CCCCC');
insert into t values(4,'DDDDD');
insert into t values(5,'EEEEE');
commit;
SCOTT@book> insert into t values(3,'ccccc');
1 row created.

SCOTT@book> commit ;
Commit complete.

2.现在有重复:

SCOTT@book> create unique index pk_t on t (id);
create unique index pk_t on t (id)
                            *
ERROR at line 1:
ORA-01452: cannot CREATE UNIQUE INDEX; duplicate keys found

--无法建立唯一索引.先建立索引:

SCOTT@book> create  index pk_t on t (id);
Index created.

SCOTT@book> alter table t add constraint pk_t primary key (id) ;
alter table t add constraint pk_t primary key (id)
                             *
ERROR at line 1:
ORA-02437: cannot validate (SCOTT.PK_T) - primary key violated
--无法加入约束.因为有重复记录.

SCOTT@book> alter table t add constraint pk_t primary key (id) enable novalidate;
Table altered.

SCOTT@book> insert into t values(1,'ccccc');
insert into t values(1,'ccccc')
*
ERROR at line 1:
ORA-00001: unique constraint (SCOTT.PK_T) violated

SCOTT@book> @ &r/desc t
Name  Null?    Type
----- -------- ----------------
ID             NUMBER(38)
NAME           VARCHAR2(100)

--虽然ID的定义还没有not null,但是插入空值:

SCOTT@book> insert into t values(null,'ccccc');
insert into t values(null,'ccccc')
                     *
ERROR at line 1:
ORA-01400: cannot insert NULL into ("SCOTT"."T"."ID")

--剩下重复的记录的问题开发自己解决.

目录
相关文章
|
2月前
|
SQL 缓存 安全
volatile 关键字深度拆解:从内存屏障底层到单例模式的工业级架构设计
本文从Java内存模型的底层原理出发,一步步拆解volatile的核心语义,用通俗的语言讲透内存屏障的实现机制,再结合单例模式的架构演进,手把手教你写出工业级的线程安全单例,同时梳理常见误区与最佳实践,让你彻底吃透volatile关键字。
238 1
|
2月前
|
人工智能 自然语言处理 安全
2026年企业如何用好智能客服系统,完整版企业级智能客服系统建设指南
2026年,智能客服已升级为服务中枢与增长入口。“能用、好用、管用”成落地核心标准。瓴羊Quick Service(阿里云旗下)凭借行业大模型微调、RAG增强生成、AI Agent工作流编排及全链路协同能力,助力企业构建懂业务、可进化、高安全的智能客服系统。(239字)
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
人工智能:有多少人工,才能有多少智能?
当下AI大模型的能力,特别是Agent领域,到底离不开多少“人工”的加持?本文将结合我的实际经验,深入探讨高质量数据与有效评价体系在Agent发展中的决定性作用,并通过编码Agent、Web Agent和GUI Agent的成熟度分析,揭示AI智能体发展面临的挑战与机遇。
386 89
|
7月前
|
缓存 API 开发者
虾皮 item_search 接口对接全攻略:从入门到精通
本文详解虾皮(Shopee)开放平台item_search接口的对接全流程,涵盖接口功能、参数配置、签名生成、Python代码实现及最佳实践,适用于跨境电商选品与市场分析,助开发者快速掌握商品搜索接口应用。
|
存储 运维 监控
日志服务SLS焕新升级:卓越性能、高效成本、极致稳定与智能化
日志服务SLS焕新升级,涵盖卓越性能、高效成本、极致稳定与智能化。新功能特性包括Project回收站、ELasticsearch兼容方案及全链路数据处理能力提升。通过扫描计算模式和数据加工优化,实现更好的成本效果。案例分析展示了一家国内顶级车企如何通过日志服务实现跨云、跨地域的全链路数据处理,大幅提升问题处理效率。
454 9
|
运维 并行计算 数据处理
量子计算的基本原理与传统计算的区别
量子计算的基本原理与传统计算的区别
646 5
|
SQL 前端开发 Java
编译JSqlParser4.6-4.7最新源代码
编译JSqlParser4.6-4.7最新源代码
497 0
|
监控 Oracle 关系型数据库
"深度剖析:Oracle SGA大小调整策略——从组件解析到动态优化,打造高效数据库性能"
【8月更文挑战第9天】在Oracle数据库性能优化中,系统全局区(SGA)的大小调整至关重要。SGA作为一组共享内存区域,直接影响数据库处理能力和响应速度。本文通过问答形式介绍SGA调整策略:包括SGA的组成(如数据缓冲区、共享池等),如何根据负载与物理内存确定初始大小,手动调整SGA的方法(如使用`ALTER SYSTEM`命令),以及利用自动内存管理(AMM)特性实现智能调整。调整过程中需注意监控与测试,确保稳定性和性能。
1342 2
|
弹性计算 负载均衡
阿里云共享流量包详解及共享流量包如何使用?
阿里云共享流量包是通用型的流量套餐产品,流量包可用来抵扣按流量计费的云服务器ECS、弹性公网IP和负载均衡SLB多地域产生的流量,使用超级简单
|
前端开发 JavaScript 算法
RSC 就是套壳 PHP ?带你从零实现 React Server Component
RSC 就是套壳 PHP ?带你从零实现 React Server Component
419 0