Chcę migrować moją aplikację na iPhone'a do nowej wersji bazy danych. Ponieważ nie mam zapisanej żadnej wersji, muszę sprawdzić, czy istnieją pewne nazwy kolumn.
Ten wpis Stackoverflow sugeruje dokonanie wyboru
SELECT sql FROM sqlite_master
WHERE tbl_name = 'table_name' AND type = 'table'
i przeanalizuj wynik.
Czy to wspólny sposób? Alternatywy?
SQLite.swift
zapoznać się z konkretnym przypadkiem , zobacz to pytanie i odpowiedź, aby uzyskać prostą listę nazw kolumn lub tę dotyczącą problemów z migracją.Odpowiedzi:
dostaniesz listę wszystkich nazw kolumn.
źródło
create temporary table TmpCols (cid integer, name text, type text, nn bit, dflt_value, pk bit); .mode insert TmpCols .output cols PRAGMA TABLE_INFO('yourtable'); .read cols .mode csv .output stdout
db.rawQuery("PRAGMA table_info(" + tablename + ")", null);
Jeśli masz bazę danych sqlite, użyj programu wiersza polecenia sqlite3 i tych poleceń:
Aby wyświetlić listę wszystkich tabel w bazie danych:
Aby pokazać schemat dla danego
tablename
:źródło
PRAGMA table_info(table_name);
Jeśli zrobisz
uzyskasz pożądany rezultat.
źródło
.sqliterc
pliku .PRAGMA
i.schema
metoda nie działały dla mnie. Ale ten działa dobrze.Tylko dla super noobów, takich jak ja, zastanawiających się, jak i co ludzie mieli na myśli
Chcesz użyć tego jako wyciągu przygotowawczego, jak pokazano poniżej. W ten sposób wybiera się tabelę, która wygląda tak, z wyjątkiem tego, że jest zapełniana wartościami odnoszącymi się do tabeli.
Gdzie id i nazwa to rzeczywiste nazwy twoich kolumn. Aby uzyskać tę wartość, musisz wybrać nazwę kolumny, używając:
Co zwróci nazwę kolumny bieżącego wiersza. Aby złapać je wszystkie lub znaleźć ten, który chcesz, musisz iterować przez wszystkie rzędy. Najprostszym sposobem na to byłoby w następujący sposób.
źródło
Jeśli chcesz, aby dane wyjściowe Twoich zapytań zawierały nazwy kolumn i były poprawnie wyrównane jako kolumny, użyj tych poleceń w
sqlite3
:Otrzymasz dane wyjściowe takie jak:
źródło
Aby uzyskać listę kolumn, możesz po prostu użyć:
źródło
Alternatywnym sposobem uzyskania listy nazw kolumn nie wymienionych tutaj jest wybranie funkcji pragma:
Możesz sprawdzić, czy określona kolumna istnieje, uruchamiając:
Tego używasz, jeśli nie chcesz analizować wyniku wyboru sql z sqlite_master lub pragma table_info.
Odniesienie:
https://www.sqlite.org/pragma.html#pragfunc
źródło
możesz użyć instrukcji Like, jeśli szukasz konkretnej kolumny
dawny:
źródło
Po uruchomieniu
sqlite3
cli, wpisując:da również pożądany rezultat
źródło
Wiem, że to stary wątek, ale ostatnio potrzebowałem tego samego i znalazłem fajny sposób:
źródło
where t.name = 'table';
Aby uzyskać informacje o kolumnie, możesz użyć następującego fragmentu kodu:
źródło
źródło
.schema w konsoli sqlite, kiedy jesteś w środku, wygląda to dla mnie tak ...
źródło
źródło
źródło
Wiem, że jest już za późno, ale to pomoże innym.
Aby znaleźć nazwę kolumny tabeli, powinieneś wykonać,
select * from tbl_name
a otrzymasz wyniksqlite3_stmt *
. i sprawdź iterację kolumny po całej pobranej kolumnie. Odwołaj się do następującego kodu dla tego samego.Spowoduje to wydrukowanie wszystkich nazw kolumn zestawu wyników.
źródło
.schema table_name
Spowoduje to wyświetlenie nazw kolumn tabeli z bazy danych.
Mam nadzieję, że to pomoże !!!
źródło
Może po prostu chcesz wydrukować nagłówki tabeli na konsoli. To jest mój kod: (dla każdej tabeli)
źródło