永发信息网

Oracle 多表级联添加操作

答案:2  悬赏:40  手机版
解决时间 2021-03-19 21:44
  • 提问者网友:姑娘长的好罪过
  • 2021-03-19 16:29
Oracle 多表级联添加操作
最佳答案
  • 五星知识达人网友:洎扰庸人
  • 2021-03-19 17:58
1 可以
2 也可以不用触发器,用存储过程也可以。
页面点击删除,调用一个存储过程。 存储过程中把两个delete语句写在一起。
delete from student ....
delete from grade ....
commit; (这两句就相当于一个事务)
异常处理中写rollback,以防有问题删除不成功可以回滚。追问不好意思,好久没用Oracle,不知道怎么定义了,百度上各式各样的定义,不知道看哪个,能给一段定义存储过程的语句给我吗?非常感谢、非常感谢、非常感谢、非常感谢、非常感谢您麻烦啦追答create or replace procedure del_stu
(v_id in number) is
begin
delete from student where id=v_id;
delete from grade where studentid=v_id;
commit;
exception when others then
rollback;
end;

/追问问题1:
v_id 是不是student 表和grade 表主外键的意思?

问题2:
假如我三张表ABC AB 主外键关系 BC 主外键,该怎么办?定义两个变量吧?
问题三:
是不是Oracle不能直接执行存储过程,只有在代码中才能调用,调用语句是不是 Call 存储过程名?
谢谢。分给的有点少,不好意思。追答1 v_id是个变量。你要删除表中记录,肯定得有个标识啊。一般都是以id为标识的
2 根据你的业务需求自己来设计。
3 oracle也可以直接执行。但是你这肯定是与前台相结合的。前台如果是Java的话就用call 来调用追问我是.NET的 什么语句调用呢?追答呃 那我就不知道了 .net方面不大懂。
全部回答
  • 1楼网友:我住北渡口
  • 2021-03-19 19:14
delete from grade where grade.studentid=:old.studentid cascade;
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯