16

SQLite では、次のクエリを実行して、テーブル内の列のリストを取得できます。

PRAGMA table_info(myTable)

これにより、列が表示されますが、主キーが何であるかについての情報はありません。さらに、次の 2 つのクエリを実行して、インデックスと外部キーを検索できます。

PRAGMA index_list(myTable)
PRAGMA foreign_key_list(myTable)

しかし、主キーを表示する方法がわかりません。どうすればこれを行うことができるか知っている人はいますか?

注:私はできることも知っています:

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

そして、主キーを示す create table ステートメントを提供します。しかし、create ステートメントを解析せずにこれを行う方法を探しています。

4

2 に答える 2

17

DOES は、pk (最後のもの) という名前のtable_info列を提供し、それが主キーであるか (その場合はキー内のインデックス)、そうでないか (ゼロ) を示します。

明確にするために、ドキュメントから:

結果セットの「pk」列は、主キーの一部ではない列の場合はゼロであり、主キーの一部である列の主キーの列のインデックスです。

于 2012-05-06T16:28:21.370 に答える