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,'','');这个功能,求解。
展开
 我来答
汪雄辉拉
2011-10-18 · TA获得超过2966个赞
知道大有可为答主
回答量:1430
采纳率:0%
帮助的人:1636万
展开全部
CREATE OR REPLACE TRIGGER triggerName BEFORE INSERT ON table t_user FOR EACH ROW
when (new.u_id is null)
begin
select user_seq.nextval into:new.id from dual;
end;
一般情况下会直接在程序里去调用序列,因为数据量太大的话,对表逐行扫描的话会影响性能
百度网友3c5eee5
2011-10-18 · TA获得超过118个赞
知道答主
回答量:124
采纳率:0%
帮助的人:60.5万
展开全部
我感觉应该等他插入后,然后根据用户名来修改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 ;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
美妙英姿458
2011-10-17 · TA获得超过5.5万个赞
知道大有可为答主
回答量:3.1万
采纳率:0%
帮助的人:3898万
展开全部
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 ;
/
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-10-18
展开全部
buzhidao
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式