http://community.csdn.net/Expert/topic/3019/3019594.xml?temp=3.107852E-02
解决方案 »
- 行级触发器。当新增时,字段改变
- oracle数据库新能下降问题
- 各位高手,帮帮忙,用WEBLOGIC的连接池,过几天数据库不能访问了,不知道是怎么回事
- exp导出视图的问题
- oracle数据库访问报错!!!
- 刚到Oracle版本.准备天天送分:顺便学习,第二个问题:right,在Oracle的写法:
- 如果在安装完ora 9i后改变它的字符集??急,在线等。。谢谢!
- ORACLE初学者,想进一步提高,请帮助!!!!!
- 有一个关于SQL的查询的问题?特难!有挑战!急,急,急!
- oracle存储emoji表情乱码的问题。
- 如何在oracle9i的oracle enterprise manager console里查看各个用户的权限?
- 求一片关于ORACLE8i的中英文对照的文章!急求!!
2、利用max(id)+1
(cust_id int not null ,cust_name char(10))
insert into cust
values( AA0.nextval, 'zxcvzx')
序列定义存储在数据字典中.
可以在以下场合使用nextval和currval伪列
1>insert语句的子句中
2>select语句中的前面选择的表列名
3>update语句中的set字句
以下场合不能使用nextval和currval伪列
1>子查询
2>视图和快照的定义查询
3>带有distinct操作符的select语句
4>带有group by或者order by字句的select语句
5>通过union,intersect或minus与另一个select语句相结合的select语句中
6>select语句的where字句中
7>create table或alter table语句中的一个表列的default值定义中
8>检查约束的条件中
CREATE SEQUENCE student_sequence
START WITH 10000
INCREMENT BY 1
NOMAXVALUE
CACHE 20;
--CACHE:用以确定在内存高速缓冲区预先装入的一组序列数目,以实现对序列的快速访问CREATE TABLE tab_students (
id NUMBER(5) PRIMARY KEY,
first_name VARCHAR2(20),
last_name VARCHAR2(20),
major VARCHAR2(30),
current_credits NUMBER(3)
);INSERT INTO tab_students (id, first_name, last_name, major,current_credits)
VALUES (student_sequence.NEXTVAL, '杰', '李','计算机科学', 11);INSERT INTO tab_students (id, first_name, last_name, major,current_credits)
VALUES (student_sequence.NEXTVAL, '小刚', '邓','历史', 4);commit;select * from tab_students;
select student_sequence.CURRVAL from dual;
select student_sequence.NEXTVAL from dual;--最好一个自增字段对应一个序列,序列一般配合触发器使用
increment by 1
start with 1
maxvalue 999999999
cycle;调用,自动加一:
insert into tablea(id,name) values(seq_name.nextval,'zfd (稻草人) ');
TAPE_Id Number(38), -- 自动增益
SINGAL_Id Number(38), -- HR_MT_SINGAL
Fre_Center Number(25,10), -- 频率中心频点
TAPE_DATE_S DATE, -- 开始时间
TAPE_DATE_E DATE, -- 结束时间
TAPE_File Varchar2(200), -- 录音文件名
TAPE_Time_Long Number(20) -- 长度
);ALTER TABLE "HR_MT"."TAPE" ADD( PRIMARY KEY (TAPE_Id));create sequence "HR_MT".TAPE_Id increment by 1 nocache;CREATE OR REPLACE TRIGGER "HR_MT"."TAPE_Id_TRIG" BEFORE INSERT
ON "HR_MT"."TAPE"
FOR EACH ROW
DECLARE
iid NUMBER;
BEGIN
if :NEW.TAPE_Id is null then
SELECT TAPE_Id.NEXTVAL INTO iid FROM DUAL;
:NEW.TAPE_Id:=iid;
end if;
END;
/