In SQLite posso eseguire la seguente query per ottenere un elenco di colonne di una tabella:interrogazione SQLite per trovare le chiavi primarie
PRAGMA table_info(myTable)
questo mi dà le colonne, ma nessuna informazione su quali possano essere le chiavi primarie. Inoltre, posso eseguire i seguenti due query per la ricerca di indici e chiavi esterne:
PRAGMA index_list(myTable)
PRAGMA foreign_key_list(myTable)
Ma io non riesco a capire come visualizzare le chiavi primarie. Qualcuno sa come posso fare questo?
Nota: so anche che posso fare:
select * from sqlite_master where type = 'table' and name ='myTable';
e vi darà la CREATE TABLE che mostra le chiavi primarie. Ma sto cercando un modo per farlo senza analizzare la dichiarazione di creazione.
Ahhhhhh merda, avevo fatto un'ipotesi che non avrei dovuto fare sul database che stavo usando. Grazie per aver segnalato questo! – Kyle
Tuttavia, non fornisce l'ordine delle colonne delle chiavi primarie composte. 'CREATE TABLE ReversePK ( un int NOT NULL, b int NOT NULL, PRIMARY KEY (b, a) )' –
La colonna pk nel table_info non è un valore booleano, il valore che si dà l'ordine delle colonne. –