SQLite查询以查找主键

时间:2012-05-06 16:18:57

标签: sqlite schema primary-key

在SQLite中,我可以运行以下查询来获取表中的列列表:

PRAGMA table_info(myTable)

这给了我列但没有关于主键可能是什么的信息。另外,我可以运行以下两个查询来查找索引和外键:

PRAGMA index_list(myTable)
PRAGMA foreign_key_list(myTable)

但我似乎无法弄清楚如何查看主键。有谁知道我该怎么做呢?

注意:我也知道我可以这样做:

select * from sqlite_master where type = 'table' and name ='myTable';

它将给出显示主键的create table语句。但我正在寻找一种方法来解决创建语句。

2 个答案:

答案 0 :(得分:10)

table_info DOES会为您提供一个名为pk(最后一个)的列,指示它是否为主键(如果是,键中的索引)或不是(零)。

从文件中澄清:

  

对于不是的列,结果集中的“pk”列为零   主键的一部分,是主键中列的索引   作为主键一部分的列的键。

答案 1 :(得分:0)

希望这对某人有所帮助: 经过一些研究和痛苦,对我有用的命令找到主键列名是:

SELECT l.name FROM pragma_table_info("Table_Name") as l WHERE l.pk = 1;