请教触发器的问题,急!
在oracle中,insert时候没有自增长id,是加一个触发器吗?
建立一个序列号
CREATE SEQUENCE 序列号的名称 (最好是表名+序列号标记) INCREMENT BY 1 START WITH 1
MAXVALUE 99999 CYCLE NOCACHE;
是这样写的吗?
那在insert的时候该怎么调用呢?
象:
create table test(
id number(8) not null,
username varchar2(30)
);
create sequence test.id incerement by 1 maxvlue 99999 cycle nocache;
那insert的时候该怎么写呢?
insert into(id,username) value(?,'1234');
问题点数:0、回复次数:5Top
1 楼chuangT(chuangT)回复于 2003-12-01 11:59:11 得分 0
可以在程序中这样做;
select sequence.nextval id from dual;
id:=dm.q1.fieldByname('id').asvalue;
这样就可以了
如果你想加粗发器的话也可以:
create or replace trriger_name before insert on "yourtalbe"
for each row
declare
begin
end;Top
2 楼ojaoja()回复于 2003-12-01 12:00:03 得分 0
insert into test(id,username)
values
( test_id.nextval,'1234' );Top
3 楼luobutou(小箩卜头)回复于 2003-12-01 12:04:26 得分 0
ojaoja兄弟,提示
ERROR 位于第 2 行:
ORA-02289: 序列(号)不存在
Top
4 楼luobutou(小箩卜头)回复于 2003-12-01 12:27:10 得分 0
上面两个兄弟,怎么发给我的都不行呀.Top
5 楼zgh2003(世纪飞扬)回复于 2003-12-01 14:09:42 得分 0
insert into test(id,username)
values
( test_id.nextval,'1234' );
-----------------------------------------------------------------------
保证“test_id.nextval”中序列名称与你创建的序列名称一致,
因为你自己创建的序列名称好像是“id”
Top




