Oracle自增ID实现
首先,你要有一张表!
CREATE TABLE example(
ID Number(4) NOT NULL PRIMARY KEY,
NAME VARCHAR(25),
PHONE VARCHAR(10),
ADDRESS VARCHAR(50) );
然后,你需要一个自定义的sequence
CREATE SEQUENCE emp_sequence
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXVALUE -- 不设置最大值
NOCYCLE -- 一直累加,不循环
NOCACHE -- 不建缓冲区
以上代码完成了一个序列(sequence)的建立过程,名称为emp_sequence,范围是从1开始到无限大(无限大的程度是由你机器决定的),nocycle 是决定不循环,如果你设置了最大值那么你可以用cycle 会使seq到最大之后循环.对于nocache顺便说一下如果你给出了cache值那么系统将自动读取你的cache值大小个seq
,这样在反复操作时会加快运行速度,但如果遭遇意外情况如当机了或oracle死了,则下次取出的seq值将和上次的不连贯.(如果连不连贯无所谓建议用cache,因为时间就是金钱呀!跑题了!)
书接上文,你只有了表和序列还不够,还需要一个触发器来执行它!代码如下:
CREATE TRIGGER "触发器名称" BEFORE
INSERT ON example FOR EACH ROW WHEN (new.id is null)
begin
select emp_sequence.nextval into: new.id from dual;
end;
打完收工!下面你就试试插入数据吧!
INSERT INTO example
相关文档:
28.2.4 安装Oracle 11g
Oracle 11g提供了图形化的安装界面,用户可通过移动和单击鼠标完成安装过程。具体安装步骤如下所示。
(1)解压Oracle 11g安装包文件。
unzip linux_11gR1_database_1013.zip
文件将会被解压到linux_11gR1_database_1013目录下,如下所示。
# ls
doc inst ......
hints 這個東使用的好的話很好用。在进行sql执行过程中,由于有时候系统自动优化的方式并不是最优的。需要我们手工添加hint来提高查询效率。在SQL语句优化过程中,我们经常会用到hint,现总结一下在SQL优化过程中常见Oracle HINT的用法:
1. /*+ALL_ROWS*/表明对语句块选择基于开销的优化方法,并获 ......
28.5 Oracle图形化管理工具——OEM
Oracle企业管理器(Oracle Enterprise Manager,OEM)是Oracle提供的一个基于Web的图形化数据库管理工具。通过OEM,用户可以完成几乎所有的原来只能通过命令行方式完成的工作,包括数据库对象、用户权限、数据文件、定时任务的管理,数据库参数的配置,备份与恢复,性能 ......
oracle的分析函数over 及开窗函数
一:分析函数over
Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是
对于每个组返回多行,而聚合函数对于每个组只返回一行。
下面通过几个例子来说明其应用。 &nb ......
28.6 Oracle常见问题处理
本节介绍在Red Hat Enterprise Linux 5.2上安装及配置Oracle数据库服务器中,常见的问题及解决方法,包括如何获得数据库创建过程中的详细信息,访问OEM出现“安全连接失败,使用了无效的安全证书”错误以及忘记sys用户口令后的处理方法等。 ......