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
相关文档:
启动和停止数据库
例程->配置->一般信息中 启动和停止数据
停止数据库应该选择:当所有事务结束时。
也可以用命令启动和停止(用oracle用户登陆)
启动 : lsnrctl start //启动 lister
sqlplus /nolog <<EO ......
原文地址:http://fandayrockworld.javaeye.com/blog/540509
回顾:
一、 ROWID的概念
存储了row在数据文件中的具体位置:64位编码的数据,A-Z, a-z, 0-9, +, 和 /,
row在数据块中的存储方式
SELECT ROWID, last_name from hr.employees WHERE department_id = 20;
比如:OOOOOOFFFBBBBBBRRR
......
数据导出:
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中
exp system/manager@TEST file=d:\daochu.dmp full=y
2 将数据库中system用户与sys用户的表导出
exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)
3 将数据库中的表in ......
最近接触Oracle的东西,刚刚开始学习并同时做点东西,最近老是使用存储过程。现在通过我个人的使用简单说下自己的感受!
在设计存储过程中,一本通过二个方式实现:
1:就是简单的实现游标
---过程的声明---
......
28.4.3 检测Oracle数据库状态
Oracle启动后,为检测Oracle服务的运行是否正常,可以执行ps命令检查相关的Oracle服务进程,也可以通过Oracle所提供的命令进行检查。具体介绍如下所示。
(1)执行ps命令查看数据库进程情况。
ps -ef | grep oracle
(2)在sqlplus中执行命令查看数据库状态。
&nbs ......