如何在oracle数据库中,增加一个“数值自动增长”的字段?

时间:2020-12-27 21:39:55
在 ORACLE下如何像在Access下,当每增加一条记录时,此字段值自动加1?
请教!

7 个解决方案

#1


CREATE SEQUENCE name (
START WITH 1
INCREMENT BY 1

INSERT INTO table(aa)
VALUES (name.nextval)

#2


新建一个序列,在表中写触发器,插入之前读序列的下一个值,将这个值作为自动增长的值。

#3


新建一个序列:
CREATE SEQUENCE name (
START WITH 1
INCREMENT BY 1
插入之前读序列的下一个值:
INSERT INTO table(aa)
VALUES (name.nextval)

#4


小弟是ORACLE的门外汉,身旁又不有工具书,请高手再详细指点:
请问:楼上的
CREATE SEQUENCE name (
START WITH 1
INCREMENT BY 1
这个语句完整的该如何写??
是如何针对此表建立序列的?
增加序列字段还是在原字段的基础上增加,还是只是增加一个序列,可以像普通字段一样去讲读??
麻烦了!

#5


那序列后,就在程序使用它,也可以用触发器来做。
create trigger a_tri
before insert on a 
for each row
begin
select name.nextval into :new.id from dual;
end;
/

#6


建立序列:
CREATE SEQUENCE SEQ_DEPART
INCREMENT BY 1
MINVALUE 1
MAXVALUE 99999999        --可以自己定义长度
NOCYCLE 
NOCACHE
ORDER;
COMMIT;

建立触发器:
CREATE OR REPLACE TRIGGER TRG_ADDDEPART
BEFORE INSERT ON T_DEPARTMENTINFO
FOR EACH ROW
BEGIN 
  SELECT SEQ_DEPART.NEXTVAL INTO :NEW.SN FROM DUAL;
END TRG_ADDDEPART;

#7


CREATE TRIGGER "KP"."INSERT_MSCS" BEFORE
INSERT ON "GRKHXX" REFERENCING OLD AS old NEW AS new 
    FOR EACH ROW 
begin
  select MSCS.nextval into :new.BH from DUAL;
end;
 
上面的触发器创建时,显示错误Ora-00942:表和视图不存在,你没有足够的权限执行该操作。
  其中MSCS为一个sequence.

#1


CREATE SEQUENCE name (
START WITH 1
INCREMENT BY 1

INSERT INTO table(aa)
VALUES (name.nextval)

#2


新建一个序列,在表中写触发器,插入之前读序列的下一个值,将这个值作为自动增长的值。

#3


新建一个序列:
CREATE SEQUENCE name (
START WITH 1
INCREMENT BY 1
插入之前读序列的下一个值:
INSERT INTO table(aa)
VALUES (name.nextval)

#4


小弟是ORACLE的门外汉,身旁又不有工具书,请高手再详细指点:
请问:楼上的
CREATE SEQUENCE name (
START WITH 1
INCREMENT BY 1
这个语句完整的该如何写??
是如何针对此表建立序列的?
增加序列字段还是在原字段的基础上增加,还是只是增加一个序列,可以像普通字段一样去讲读??
麻烦了!

#5


那序列后,就在程序使用它,也可以用触发器来做。
create trigger a_tri
before insert on a 
for each row
begin
select name.nextval into :new.id from dual;
end;
/

#6


建立序列:
CREATE SEQUENCE SEQ_DEPART
INCREMENT BY 1
MINVALUE 1
MAXVALUE 99999999        --可以自己定义长度
NOCYCLE 
NOCACHE
ORDER;
COMMIT;

建立触发器:
CREATE OR REPLACE TRIGGER TRG_ADDDEPART
BEFORE INSERT ON T_DEPARTMENTINFO
FOR EACH ROW
BEGIN 
  SELECT SEQ_DEPART.NEXTVAL INTO :NEW.SN FROM DUAL;
END TRG_ADDDEPART;

#7


CREATE TRIGGER "KP"."INSERT_MSCS" BEFORE
INSERT ON "GRKHXX" REFERENCING OLD AS old NEW AS new 
    FOR EACH ROW 
begin
  select MSCS.nextval into :new.BH from DUAL;
end;
 
上面的触发器创建时,显示错误Ora-00942:表和视图不存在,你没有足够的权限执行该操作。
  其中MSCS为一个sequence.