在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语句。但我正在寻找一种方法来解决创建语句。
答案 0 :(得分:10)
table_info
DOES会为您提供一个名为pk(最后一个)的列,指示它是否为主键(如果是,键中的索引)或不是(零)。
从文件中澄清:
对于不是的列,结果集中的“pk”列为零 主键的一部分,是主键中列的索引 作为主键一部分的列的键。
答案 1 :(得分:0)
希望这对某人有所帮助: 经过一些研究和痛苦,对我有用的命令找到主键列名是:
SELECT l.name FROM pragma_table_info("Table_Name") as l WHERE l.pk = 1;