请教!
7 个解决方案
#1
CREATE SEQUENCE name (
START WITH 1
INCREMENT BY 1
INSERT INTO table(aa)
VALUES (name.nextval)
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)
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
这个语句完整的该如何写??
是如何针对此表建立序列的?
增加序列字段还是在原字段的基础上增加,还是只是增加一个序列,可以像普通字段一样去讲读??
麻烦了!
请问:楼上的
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;
/
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;
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.
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)
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)
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
这个语句完整的该如何写??
是如何针对此表建立序列的?
增加序列字段还是在原字段的基础上增加,还是只是增加一个序列,可以像普通字段一样去讲读??
麻烦了!
请问:楼上的
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;
/
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;
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.
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.