欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

数据库在主见作为外键时如何更新

更新时间: 2014-01-05 02:12:45 责任编辑: Author_N1

 

数据库在主见作为外键时怎么更新
[b]     我现在有两张表,A表和B表, A表中的主键是B表中的外键。我现在要更新A表中的主键并且更新B表着那个的外键。  怎么做?? 尝试是哟个sql语句中是报父项不存在错。 能不用触发器解决最好[/b
--参考方法--
主键就不应该出现更新操作。。。。。。
--参考方法--
把外键约束删除之后用触发器可以做。
--参考方法--
http://blog.csdn.net/iteye1011/article/details/11228255---百问百答

10.数据库表中没有设置级联删除.怎样用SQL语句实现,例如:
EMP表中有字段DEPT_NO是外键
POS表中有字段DEPT_NO是外键
DEPT表中有字段DEPT_NO,
如何实现删除DEPT表中数据时将EMP表,POS表中的相关数据也删除?

方法一:触发器解决
create or replace trigger delete_dept
before delete on DEPT
for each row
begin
 delete from EMP where DEPT_NO = :old.DEPT_NO;
 delete from POS where DEPT_NO = :old.DEPT_NO;
end;

方法二:修改从表的外键设置,改为“on delete cascade”模式

  a)先查询出EMP表和POS表中外键的名称(如果已知道外键名,这一步可以省略)
 select CONSTRAINT_NAME,TABLE_NAME from user_constraints where CONSTRAINT_TYPE ='R' and TABLE_NAME in('EMP','POS');
 b)删除EMP表和POS表上的外键后重新建立允许级联删除的外键模式
   alter table EMP drop constraint 外键名;
   alter table POS drop constraint 外键名;
   alter table EMP add constraint 外键名 foreign key(DEPT_NO) references DEPT(DEPT_NO) on delete cascade;
   alter table POS add constraint 外键名 foreign key(DEPT_NO) references DEPT(DEPT_NO) on delete cascade;

上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:12:45
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/7028/
本文WWW.DOC100.NET DOC100.NET版权所有。