外键在SQLite中有用吗?

时间:2009-12-10 19:01:36

标签: database sqlite foreign-keys

我有两张桌子'元素'和'列表' 列表具有主键和列表名称。 元素具有与列表中的单个条目相关的数据。

元素需要一个列,其中包含元素所在的列表。

我已经阅读了SQL的外键约束和数字,这是链接表的最佳方式,但我使用的SQLite不强制执行foerign键约束。

如果没有强制执行,是否有必要声明外键约束?

3 个答案:

答案 0 :(得分:2)

现在sqlite强制执行外键,下载新版本。

答案 1 :(得分:2)

即使您的数据库没有强制执行约束(例如旧的MySQL),也总是很好。这样做的原因是,有一天,有人会尝试阅读你的架构(甚至可能是你自己)。

如果您无法使用新版本,您仍然可以声明约束并使用触发器强制执行约束。无论哪种情况,我都不会遗漏符号。这太有用了。

答案 2 :(得分:0)

  

外键是一个字段(或字段)   这指向了主键   另一张桌子。的目的   外键是确保参考   数据的完整性。换一种说法,   只有应该的值   允许出现在数据库中。

它只强制执行“业务规则”。如果您从业务方面需要这个,那么是的,这是必需的。

索引不会受到影响。

您仍然可以根据需要创建索引。

查看Foreign Key

Wikipedia Foreign key