Запрос SQLite для поиска первичных ключей

в SQLite я могу выполнить следующий запрос, чтобы получить список столбцов в таблице:

PRAGMA table_info(myTable)

Это дает мне столбцы, но никакой информации о том, что могут быть первичные ключи. Кроме того, я могу запустить следующие два запроса для поиска индексов и внешних ключей:

PRAGMA index_list(myTable)
PRAGMA foreign_key_list(myTable)

но я не могу понять, как просматривать первичные ключи. Кто-нибудь знает, как я могу это сделать?

Примечание: я также знаю, что я могу do:

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

и он даст оператор create table, который показывает первичные ключи. Но я ищу способ сделать это без разбора инструкции create.

1 ответов


на table_info дает вам столбец с именем pk (последний), указывающий, является ли он первичным ключом (если да, то индекс его в ключе) или нет (ноль).

чтобы уточнить, из документации:

столбец "pk" в результирующем наборе равен нулю для столбцов, которые не являются частью первичного ключа, и является индексом столбца в первичном ключ для столбцов, которые являются частью первичного ключа.