在sqlite中生成的pragma_foreign_key_list
(doc)表的列名是什么?或者甚至更好,我怎么能自己发现它们(因为我也想使用其他的pragma)?
澄清:我想做这样的事情
SELECT * FROM pragma_foreign_key_list('SomeTable');
为了查看表的外键。但是,我将不得不阅读该表的特定列,也许我不想首先选择所有这些列。出于某种原因,我收到的表格看起来不像here但没有列标题。
在第二个链接中使用该示例:
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
id
和seq
- pragma返回的每一行都指向一列,但外键可以是具有多列的复合词。 id
指的是第N个密钥,seq
指向该密钥的第N列。因此,在两列上具有单个FK的表将具有id = 0 seq = 0且id = 0 seq = 1的行。table
和to
- FK所指的父表和列。在这种情况下types.id
。from
子表中具有FK约束的列。在这种情况下nodes.typeid
。on_update
和on_delete
- 更新或删除引用的外键时执行的操作。match
- 一个SQL92功能,用于与空值相关的外键操作,sqlite没有实现,但是如果它确实添加了支持,它确实接受语法。