Запрос 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" в результирующем наборе равен нулю для столбцов, которые не являются частью первичного ключа, и является индексом столбца в первичном ключ для столбцов, которые являются частью первичного ключа.