pragma foreign_keys列的列名

问题描述 投票:0回答:1

在sqlite中生成的pragma_foreign_key_list (doc)表的列名是什么?或者甚至更好,我怎么能自己发现它们(因为我也想使用其他的pragma)?

澄清:我想做这样的事情

SELECT * FROM pragma_foreign_key_list('SomeTable');

为了查看表的外键。但是,我将不得不阅读该表的特定列,也许我不想首先选择所有这些列。出于某种原因,我收到的表格看起来不像here但没有列标题。

sqlite
1个回答
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 - pragma返回的每一行都指向一列,但外键可以是具有多列的复合词。 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功能,用于与空值相关的外键操作,sqlite没有实现,但是如果它确实添加了支持,它确实接受语法。
© www.soinside.com 2019 - 2024. All rights reserved.