sqlite データベース内に複数のテーブルがある場合、自動インクリメントの主キーがあるかどうかという情報をどのように取得できますか?
たとえば、次のクエリを実行するだけで、テーブルの列に関する情報を取得できることは既に認識しています。pragma table_info(tablename_in_here)
ブール値を使用してソース コード内の対応する各モデルを設定するよりも、自動インクリメント列を動的に取得する方がはるかに優れています。
編集:
この表を例として使用しましょう:
CREATE TABLE "test" (
"id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
"name" TEXT NOT NULL
)
これは実行後の結果テーブルですpragma table_info("test")
cid | name | type | notnull | dflt_value | pk
0 | id | INTEGER | 1 | null | 1
1 | name | TEXT | 1 | null | 0
ご覧のとおり、id
列が自動インクリメントかどうかの情報はありません
Edit2:
ステートメントを介して直接sqliteを使用するソリューションを探しています。ターミナル内のコマンドを使用して、内部から必要な情報を解析できるという
特殊な状況は受け入れられません。端末でプログラムによってコマンドを実行することが許可されていない状況では機能しません。Android アプリのように。sqlite3