如何进行外键数据校验和在 SAP 中创建外键关联数据库表
使用外键进行数据验证
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_exam1
和 fk_exam2
中的数据条目作为键从检查表中生成有效数据时,才允许在此屏幕字段中输入。
如何创建外键
外键的目的是通过检查检查表中的条目来验证输入到表中的数据。外键仅由前端用户界面检查,如果发出直接 SQL 语句来更新数据库,则不会检查外键。
按照以下步骤在 SAP 表中创建外键。
- 在数据字典 (
SE11
) 中打开要为其创建外键的表。选择要为其创建外键的字段,然后按“外键”按钮。
- 在弹出窗口中输入检查表名称,然后点击“创建建议”按钮。
- 系统根据域提出外键关系。检查系统提出的外键关系是否正确,然后按 copy。
外键已创建,现在保存并激活表。要检查外键,请转到菜单路径实用程序->表内容->创建条目。
尝试在“Zemployee”表中创建一个条目,其中包含“部门 ID”中不存在的“部门 ID”。输入值并尝试保存条目。
可以看到状态栏中有错误消息。用户界面在创建条目之前执行外键验证。
- 点赞
- 收藏
- 关注作者
评论(0)