自动给号,在Oracle中,是通过序号+触发器来实现的建一个序列create sequence a_seq increment by 1 start with 100;建一个触发器create or replace trigger t_abefore insert on afor each rowbeginselect s_a.nextval into :new.b from dual;end;
解决方案 »
- 触发器的问题
- 求助:如何查询教师表,同时显示 教师姓名+教师的学生的个数
- SQL优化的东东,大家帮个忙
- java jdbc 查询oracle的视图,出现ORA-01861异常
- C++ ORACLE执行不了SQL语句,查询也得不到返回记录,真不明白!急
- oracle For Linux 中文问题
- 高分求解。。触发器※※变量问题。。。如何在触发器向日志写入值时,能够从变量读取到表某字段名从而获得该字段的旧值和新值
- 如何手工创建Oracle数据库?
- orace 9i 安装完之后
- procedure的调用,执行问题。
- 2个表之间的批量update问题!急。。。。。
- 哪位大侠有ORACLE8I或9I的Z版CD出售,请联系[email protected]
http://community.csdn.net/Expert/topic/3704/3704133.xml?temp=.4912683
http://community.csdn.net/Expert/topic/3704/3704133.xml?temp=.4912683
CREATE SEQUENCE "SH"."AA" INCREMENT BY 1 START WITH 1 MAXVALUE
1.0E28 MINVALUE 1 NOCYCLE
CACHE 20 NOORDER在触发器中写:
insert into table1 values(aa.nextval.....)
CREATE SEQUENCE seq_name
INCREMENT BY 1
START WITH 1
MINVALUE 1
MAXVALUE 999999999
CYCLE
NOORDER
CACHE 50
/
使用序列:
SELECT LTRIM(TO_CHAR(seq_name.NEXTVAL,'000000000')) INTO v_var FROM DUAL;
插入数据时
SELECT ID INTO V_ID FROM ID_TB WHERE ROWNUM = 1 FOR UPDATE;
INSERT INTO TABLE_NAME(ID,...) VALUES(V_ID,...);
UPDATE SET ID_TB ID = ID+1;
COMMIT;