【发布时间】:2016-06-17 00:27:02
【问题描述】:
Microsoft Access 数据库中有两个表。其中一个定义元素,另一个引用它们。然而,这个参考是可选的。该值可以为 NULL。只要外键存在,我就不允许插入或更新 NULL 值。在没有外键的情况下保存NULL值后,我无法添加键。
引用列设置为“Required = false”,并且允许单独使用 NULL 值。只有参照完整性不能处理 NULL 值。
如何解决?
更新:我想到了一些可能相关的事情:我的外键使用了两列。其中一个始终设置,但另一个可以为空。
添加示例架构:
表总线:
栏目:
• objid 整数
• busnumber 整数
• 名称 varchar
主键:objid、busnumber
表连接:
栏目:
• objid 整数
• 名称 varchar
• bus1 整数
• bus2 整数
主键:objid、名称
conn (objid, bus1) 将总线 (objid, busnumber) 引用为 1:n 和
conn (objid, bus2) 将总线 (objid, busnumber) 引用为 1:n
这两个引用都是可选的,但 objid 是上级对象的一部分并且总是被设置。
【问题讨论】:
-
请发布两个表中的示例数据,指出哪些列用作索引和外键。当然,你有一个组合键是相关的。
-
@Remou:我在上面添加了一个示例架构描述。
-
varchar?您使用的是 MS Access(Jet/ACE) 后端还是 SQL Server?
-
这是文本。我不习惯访问数据类型,我更经常在家中使用 MySQL 或 SQLite。
-
我看不出这是如何工作的,就目前而言。我只能建议您删除参照完整性并通过表单进行验证。
标签: ms-access null referential-integrity