pragma_foreign_key_list的列名

时间:2019-03-18 15:06:42

标签: sqlite

在sqlite中,pragma_foreign_key_list (doc)的结果表的列名是什么?甚至更好的是,我如何才能自己了解它们(因为我也想使用其他实用程序)?

为了澄清:我想做这样的事情

SELECT * FROM pragma_foreign_key_list('SomeTable');

以查看表的外键。但是,我将不得不阅读该表的特定列,也许我不想一开始就选择所有这些列。由于某种原因,我收到的表看起来不像here,但没有列标题。

1 个答案:

答案 0 :(得分:1)

在第二个链接中使用该示例:

sqlite> PRAGMA foreign_key_list(nodes);
id          seq         table       from        to          on_update   on_delete   match
----------  ----------  ----------  ----------  ----------  ----------  --------    ------------
0           0           types       typeid      id          NO ACTION   NO ACTION   NONE
  • idseq-编译指示返回的每一行都引用一列,但是外键可以是具有多列的复合键。 id指向第N个键,seq指向该键中的第N列。因此,在两列上具有单个FK的表将具有id = 0 seq = 0和id = 0 seq = 1的行。
  • tableto-FK引用的父表和父表。 types.id
  • from子表中具有FK约束的列。 nodes.typeid
  • on_updateon_delete-更新或删除引用的外键时采取的操作。
  • match-一种SQL92功能,用于与null值相关的外键操作,sqlite不会实现该功能,但是在确实增加支持的情况下会接受语法上的操作。