PL/SQL Developer 向表主键添加序列 不用代码怎么做
1个回答
展开全部
这个还真不好做,
一般在写代码时,先取出序列的nextval,放到insert语句中去;
比如:
ida := seq_a.nextval;
insert into taba(id,value,...) values(ida,'森皮老abc',...);
或者在insert语句中直接使用序列的nextval:
insert into taba(id,value,...) values(seq_a.nextval,'abc',...);
或者用触发器实现自增长:
比如表名:tab,主键为:id
1. 增加一个序列号: create sequence seq_tab
2. 增加一个触握高发器,如果是insert,则取序列号值此升,赋予主键列
CREATE OR REPLACE TRIGGER TRI_tab
BEFORE INSERT ON tab FOR EACH ROW
DECLARE
-- LOCAL VARIABLES HERE
BEGIN
IF :NEW.id IS NULL THEN
SELECT SEQ_tab.NEXTVAL INTO :NEW.id FROM DUAL;
END IF;
END TRI_tab;
一般在写代码时,先取出序列的nextval,放到insert语句中去;
比如:
ida := seq_a.nextval;
insert into taba(id,value,...) values(ida,'森皮老abc',...);
或者在insert语句中直接使用序列的nextval:
insert into taba(id,value,...) values(seq_a.nextval,'abc',...);
或者用触发器实现自增长:
比如表名:tab,主键为:id
1. 增加一个序列号: create sequence seq_tab
2. 增加一个触握高发器,如果是insert,则取序列号值此升,赋予主键列
CREATE OR REPLACE TRIGGER TRI_tab
BEFORE INSERT ON tab FOR EACH ROW
DECLARE
-- LOCAL VARIABLES HERE
BEGIN
IF :NEW.id IS NULL THEN
SELECT SEQ_tab.NEXTVAL INTO :NEW.id FROM DUAL;
END IF;
END TRI_tab;
追问
谢谢
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询