求 oracle 级联更新和删除的源码?谢谢~~

microns 2008-10-02 01:23:25
Yes B_ID NUMBER Yes (PK)
表一
No USERNAME VARCHAR2(4000)
No B_NAME VARCHAR2(40) No
No B_GENDER VARCHAR2(40)
No B_PERMIT BLOB No
No B_TEL VARCHAR2(40) No
No B_QQ VARCHAR2(40) No
No B_EMAIL VARCHAR2(40) No
No B_PERMIT2 VARCHAR2(4000)

表二
Yes H_ID NUMBER Yes (pk)No
B_ID NUMBER No (FK)
No H_NAME VARCHAR2(400) No
No H_PRIVENCE VARCHAR2(40) No
No H_CITY VARCHAR2(40) No
No H_ADDRESS VARCHAR2(4000) No

我的表里主键都是设置的number类型的自动增一,怎样实习其级联更新啊?当往表一插入数据时,表二的B_ID自动添加,在网上查了一下,好像是要写个trigger,谢谢贴个代码,还有其他的办法吗?谢谢
...全文
70 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
tzg_dzq 2008-10-07
  • 打赏
  • 举报
回复
试一下
表二里你的number类型的H_ID 自动增一应该创建了一个序列,假设名为hid,
以下代码放在表二的触发器里
declear
hno number:=-1;
select B_ID into hno from 表一 where B_ID=:new.B_ID;
update 表二 set B_ID:=bno where H_ID=hid.nextval;
......

hebo2005 2008-10-03
  • 打赏
  • 举报
回复
用触发器实现
zhifeiji007 2008-10-03
  • 打赏
  • 举报
回复
可设置外键,实现并联删除;并联更新需要自己写代码实现。
kingofworl 2008-10-03
  • 打赏
  • 举报
回复

编码实现
BlueskyWide 2008-10-02
  • 打赏
  • 举报
回复
看一下:

create table t(pk number primary key,...);
create sequence t_seq;
create trigger t_trigger before insert on t for each row
begin
select t_seq.nextval into :new.pk from dual;
end;
suiziguo 2008-10-02
  • 打赏
  • 举报
回复
ORACLE不支持级联更新,必须自己编码来实现。
suiziguo 2008-10-02
  • 打赏
  • 举报
回复
建立外键,并设置外键级联删除。

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧