我们知道,在oracle中自动增长类型是依靠sequence类实现的,但是我们在插入一条数据时不能像sqlServer或者mySql中那么方便必须使用sequence.nextval来取得输入的值,能不能做到和Sqlserver一样吗,比如有表:
create table EMP
(
EMPID NUMBER(4) not null,
EMPNAME VARCHAR2(4000),
EMPPASS VARCHAR2(4000),
EMPSEX NUMBER(1),
EMPLEVELID NUMBER(4),
EMPLASTLOGINTIME DATE
)
alter table EMP
add constraint EMP_PK primary key (EMPID)
然后有一个序列:
create sequence EMP_SEQ
minvalue 1
maxvalue 9999999999
start with 10
increment by 1
cache 20;
我们现在的问题是:能不能把序列EMP_SEQ与表自动绑定起来实现插入时的方便呢?
正常的插入语句是这样的:
insert into EMP (EMPID, EMPNAME, EMPPASS, EMPSEX, EMPLEVELID, EMPLASTLOGINTIME) values (emp_seq.nextval(),'Jerry','jerry',1,3,to_date('01-04-2007 12:41:21', 'dd-mm-yyyy hh24:mi:ss')
自动绑定之后应该是这样的:
insert into EMP
(EMPNAME, EMPPASS, EMPSEX, EMPLEVELID, EMPLASTLOGINTIME)
values ('tom', '202cb962ac59075b964b07152d234b70', 1, 6, to_date('01-04-2007 22:41:21', 'dd-mm-yyyy hh24:mi:ss'));
解决方法是:
在EMP表的插入时做一个触发器,自动修改插入的EMPID的值:
create or replace trigger "BI_EMP"
before insert on "EMP"
for each row
begin
select "EMP_SEQ".nextval into :NEW.EMPID from dual;
end;
这样就可以达到我们想要的效果。插入时就可以写成:
insert into EMP
(EMPNAME, EMPPASS, EMPSEX, EMPLEVELID, EMPLASTLOGINTIME)
values ('tom', '202cb962ac59075b964b07152d234b70', 1, 6, to_date('01-04-2007 22:41:21', 'dd-mm-yyyy hh24:mi:ss'));
要注意的是:由于使用触发器在自动插入empid因此在插入时上面黑体部分内容不能省略,如果省略,依然需要手工添加一个empId的值,才能正常插入,也就是说,必须这样:
insert into EMP values (任意整数值,'Jerry','jerry',1,3,to_date('01-04-2007 12:41:21', 'dd-mm-yyyy hh24:mi:ss')
否则无法正常运行,很明显这样做复杂了程序的可读性。
分享到:
相关推荐
oracle基础教程 课程说明 1 课程介绍 1 课程目标 1 相关资料 1 第1章 ORACLE数据库概述 2 1.1 产品概述 2 1.1.1 产品简介 2 1.1.2 基本概念 3 1.2 ORACLE系统结构 4 1.2.2 ORACLE物理结构 4 1.2.3 系统全局区 6 ...
对于初学者来说,掌握Oracle基础知识是进入数据库领域的第一步。本文将深入浅出地介绍Oracle数据库的一些核心概念和基本操作,帮助你快速入门。 一、Oracle数据库系统概述 Oracle数据库是由美国Oracle公司开发的,...
oracle ORACLE 基础资料 基础知识 培训资料oracle ORACLE 基础资料 基础知识 培训资料oracle ORACLE 基础资料 基础知识 培训资料oracle ORACLE 基础资料 基础知识 培训资料
Oracle 基础教程 Oracle 是一款流行的关系型数据库管理系统,由 Oracle 公司开发和维护。作为一个功能强大且广泛应用的数据库管理系统,Oracle 具有强大的数据存储和管理能力,广泛应用于各种 Industries,包括金融...
通过本Oracle基础教程PPT,你将逐步了解并掌握这些概念,为你的Oracle学习之路打下坚实基础。随着对Oracle的理解加深,你还可以进一步探索高级主题,如数据仓库、分布式数据库、RAC集群等。学习Oracle不仅是技术的...
以下将详细讲解Oracle基础知识,包括数据库管理、表的创建与维护、SQL查询技巧、权限管理以及PL/SQL编程等方面。 1. **Oracle数据库优势** Oracle数据库因其高性能、高可用性和安全性而受到青睐。它支持大规模并发...
这个"oracle基础知识考试题_答案.zip"压缩包文件包含了关于Oracle数据库的基础知识学习材料,特别是针对初学者或者准备Oracle相关资格考试的人员。 首先,Oracle数据库的核心概念包括SQL(结构化查询语言)的使用,...
本资料“oracle基础知识回顾与练习.zip”是针对Oracle数据库的基础知识进行整理,采用纯SQL语句的形式,适合初学者及需要巩固基础的用户进行学习和实践。 1. SQL基础 SQL(Structured Query Language)是用于管理...
Oracle基础教程.pdf
ORACLE基础知识及故障定位 学校oracle基础知识,包含所有orcale的数据库知识,以及常见问题解决思路,解决方案,问题怎么定位。
oracle基础创建表,删除表,修改表,查看表的结构和数据,添加数据语法:删除数据语法,更新数据语法:基础查询语法:
《Oracle基础教程》是由James Perry和Gerald Post合著,并由钟鸣、郝玉洁等人翻译的一本教育性书籍,旨在帮助初学者和专业人士理解Oracle数据库的基础知识。源码下载部分提供了书中各章节实例的数据文件,使读者能够...
本文将基于"Oracle基础资料"这一主题,结合提供的压缩包文件"Oracle8i_9i数据库基础.doc",深入探讨Oracle数据库的基础知识,包括其核心概念、数据类型、SQL语句、表的创建以及备份恢复策略。 首先,Oracle数据库的...
oracle基础教程,很适合oracle的学习和数据库的操作练习。同时里面主要是以练习为主。包括了ORACLE的基础操作。
这篇“Oracle基础培训文档”旨在为初学者提供一个全面了解Oracle数据库的平台,帮助大家掌握其基本概念、操作和管理技巧。 首先,我们从基础开始,Oracle数据库的核心是SQL(结构化查询语言),它是用于管理和处理...
"Oracle基础教程.pdf" 提供了丰富的学习资源,共分为21章,涵盖了Oracle数据库的核心概念和技术。 第1章:Oracle简介 本章将介绍Oracle数据库的历史、特点和应用领域,以及它在现代企业级数据管理中的重要地位。你...
以上是Oracle基础训练的主要内容,通过深入学习和实践,你将能熟练掌握Oracle数据库的基础操作和高级特性。"Oracle基礎教程(一).ppt"至"Oracle基礎教程(三).ppt"中的材料将帮助你逐步掌握这些知识,为你的数据库管理...
"Oracle基础知识"涵盖了SQL语言的基本概念以及Oracle 10G版本的相关特性。以下将详细介绍这些知识点。 首先,SQL(Structured Query Language)是用于管理和处理关系数据库的标准编程语言。SQL基础包括以下几个部分...
Oracle 基础知识点总览 Oracle 基础知识点可以概括为以下几个方面: 1. Oracle 概述 Oracle 是一种对象关系数据库管理系统(ORDBMS),它提供了关系数据库系统和面向对象数据库系统这二者的功能。Oracle 数据库...