二维码

[ddic] abap数据字典中外键的作用

Twilight发表于 2015-03-05 16:20小懒 最后回复于 2015-04-23 10:33 [复制链接] 5053 1

今天se11创建自建表时,习惯性地将标准表的key字段都设置成外键了,而旁边的同事看到了,发生了争执。他说:设置成外键,如果参考表没有相关数据,我们在程序中更新数据时就会dump,原因是底层数据库表在更新数据时会自动检验参考表,记得大学时讲的关系型数据库时这样的。

下面是我在网上找到的案例解释:

现在有3张表相互关联。其中Table1中的主键为A1,Table2中的主键为A1与C1的组合,Table3的主键为C1。
请问如何设置外键能保证3张表中的数据的一致性?
我的设想是Table1中就只有A1为主键,不设置外键;在Table2中将A1设置为Table1的外键;在Table3中将C1设置为Table2的外键(即C1在Table3中即是主键又是外键)
按照我的理解这样设置的话,如果先维护第二张表中的数据的时候,A1的值如果在Table1不存在,是无法在Table2表中将该记录维护进去;同理,维护第3张表时,C1的数据也必须存在在Table2中。

网友给的解释:在数据库上没有外键约束。ABAP词典里的外键,只是在屏幕输入时做检查用的。
这个解释是对的,我们已经验证过了;下面大家有兴趣可以写个Demo,检查一下;直接回复在帖子后面。
回复

使用道具 举报

小懒
至今不知道外键是什么
回复 支持 反对

使用道具 举报

快速回帖

本版积分规则
您需要登录后才可以回帖 登录 | 注册有礼

快速回复 返回顶部 返回列表