如何进行外键数据校验和在 SAP 中创建外键关联数据库表

举报
雨绸缪 发表于 2023/06/30 17:22:37 2023/06/30
【摘要】 使用外键进行数据验证SAP 系统的关系数据模型可以包含许多表、视图、结构和链接表。可以说,外键定义了多个表之间的这些关系。外键执行的功能包括提供帮助数据和创建字典对象,但您将关注的功能将在数据验证区域中。毕竟,在定义选择屏幕和最重要的外键使用时,保持数据完整性是主要目标之一。根据定义,外键字段仅限于与输入字段校验表的主键对应的值。这就是两个表之间链接的方式。一个表 FORKEY1 可以被认...

使用外键进行数据验证

image.png

SAP 系统的关系数据模型可以包含许多表、视图、结构和链接表。可以说,外键定义了多个表之间的这些关系。外键执行的功能包括提供帮助数据和创建字典对象,但您将关注的功能将在数据验证区域中。毕竟,在定义选择屏幕和最重要的外键使用时,保持数据完整性是主要目标之一。

根据定义,外键字段仅限于与输入字段校验表的主键对应的值。这就是两个表之间链接的方式。一个表 FORKEY1 可以被认为是外键(或依赖)表,主要是因为它包含分配给 CHECK1 中主键字段的外键字段,这称为检查(或引用)表。

父表的外键字段和主键必须共享同一域,并且还必须指定该域的值表。这在某种程度上扩展了通常仅由值表提供的数据完整性检查。这种模式通常是编号及其描述的方式。

比如:物料编号 mara-matnr 和其对应描述 makt-maktx

某些检查表可以有多个主键字段。在这种情况下,在启动外键关系时,必须为每个字段进行赋值。三个选项如下:

  • 使用部分外键。在这种情况下,在验证外键字段中条目的可接受值时,某些字段将不是一个因素。在这种情况下,某些字段被标记为通用字段,因此在验证时被系统忽略。
  • 使用常量外键。为了使字段输入有效,该值必须与校验表中常量的值匹配。
  • 创建字段到字段分配。这是三个选择中最彻底的。检查表中的每个主键字段都与外键表中的字段匹配,然后使用所有键字段来确定外键表中的有效条目。

基本上,外键的工作方式类似于针对具有外键的字段的检查表的直接 select 语句。更具体地说,当填充外键检查字段时,SAP 系统在定义外键时生成的 select 语句由程序发送。如果表返回该选择中的值,则该条目有效。如果未找到记录,则字段输入无效。

比如,如下的代码:

select * from table_1 where table_1-exam1 = fk_exam1
                        and table_1-exam2 = fk_exam2.

这段代码显示了系统生成的 select 语句的示例,当使用外键定义将数据输入到字段中时,将调用该语句。在这种情况下,仅当 select 语句使用字段 fk_exam1fk_exam2 中的数据条目作为键从检查表中生成有效数据时,才允许在此屏幕字段中输入。

如何创建外键

外键的目的是通过检查检查表中的条目来验证输入到表中的数据。外键仅由前端用户界面检查,如果发出直接 SQL 语句来更新数据库,则不会检查外键。

按照以下步骤在 SAP 表中创建外键。

  1. 在数据字典 (SE11) 中打开要为其创建外键的表。选择要为其创建外键的字段,然后按“外键”按钮。

image.png

  1. 在弹出窗口中输入检查表名称,然后点击“创建建议”按钮。

image.png

  1. 系统根据域提出外键关系。检查系统提出的外键关系是否正确,然后按 copy。

image.png

外键已创建,现在保存并激活表。要检查外键,请转到菜单路径实用程序->表内容->创建条目。

image.png

尝试在“Zemployee”表中创建一个条目,其中包含“部门 ID”中不存在的“部门 ID”。输入值并尝试保存条目。

image.png

可以看到状态栏中有错误消息。用户界面在创建条目之前执行外键验证。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。