文本(原始)值作为 sqlite 中的外键

  • 本文关键字:sqlite 原始 文本 sqlite
  • 更新时间 :
  • 英文 :


可以在sqlite中制作这样的东西吗?

FOREIGN KEY(TypeCode, 'ARawValue', IdServeur) REFERENCES OTHERTABLE(TypeCode, TypeElem, IdServeur)

它在外键定义中说未知列"ARawValue",不是有其他方法吗?

,这是不可能的。 外键约束只能由子表和父表中的列定义。

下一个最佳解决方案可能是向子表添加一个列,并将默认值设置为文本值(以及可选的将列限制为该单个值的检查约束(。


严格来说,sqlite唯一部分索引应该是一个很好的替代解决方案,但它在 3.28.0 版测试中对我不起作用。 部分索引是使用 WHERE 子句定义的索引,甚至可以标记为 UNIQUE。 官方外键文档要求父表上有一个 UNIQUE 索引。 没有明确排除部分索引,所以我认为这将是一个很好的解决方案。 我能够创建索引,甚至在部分索引上定义外键约束,但是无论我尝试什么,我在插入子表时都遇到了外键错误,即使我已经验证父表包含索引定义的唯一值对。

最新更新