Oracle 中创建一触发器,要求完成:往表插入数据时,用触发器来完成序列的插入。
如:createtablet_user(u_idnumber,u_namevarchar2(20),u_pwdvarchar2(20));craetesequenceus...
如:
create table t_user(
u_id number ,
u_name varchar2(20),
u_pwd varchar2(20)
);
craete sequence user_seq start with 1 increment by 1;
在完成insert into t_user(u_name,u_pwd) values('','')时触发器自动增长序列的值,相当于:insert into t_user values(user_seq.nextval,'','');这个功能,求解。 展开
create table t_user(
u_id number ,
u_name varchar2(20),
u_pwd varchar2(20)
);
craete sequence user_seq start with 1 increment by 1;
在完成insert into t_user(u_name,u_pwd) values('','')时触发器自动增长序列的值,相当于:insert into t_user values(user_seq.nextval,'','');这个功能,求解。 展开
4个回答
展开全部
我感觉应该等他插入后,然后根据用户名来修改U_id
CREATE OR REPLACE TRIGGER insert_tuser_before
after INSERT ON t_user
FOR EACH ROW
BEGIN
update t_user set u_id=:new.user_seq.nextval where u_name=:new.u_name;
END ;
CREATE OR REPLACE TRIGGER insert_tuser_before
after INSERT ON t_user
FOR EACH ROW
BEGIN
update t_user set u_id=:new.user_seq.nextval where u_name=:new.u_name;
END ;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
CREATE OR REPLACE TRIGGER trg_uid
BEFORE INSERT
ON t_user
REFERENCING NEW AS New OLD AS Old
FOR EACH ROW
BEGIN
Select user_seq.nextval
into :new.u_id
From DUAL;
END ;
/
BEFORE INSERT
ON t_user
REFERENCING NEW AS New OLD AS Old
FOR EACH ROW
BEGIN
Select user_seq.nextval
into :new.u_id
From DUAL;
END ;
/
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-10-18
展开全部
buzhidao
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询