Szukam pobrać listę kolumn w tabeli. Baza danych jest najnowszą wersją SQLite (jak sądzę, 3.6). Szukam kodu, który wykonuje to za pomocą zapytania SQL. Dodatkowe punkty bonusowe za metadane związane z kolumnami (np. Długość, typ danych itp.)Jak mogę uzyskać listę kolumn w tabeli dla bazy danych SQLite?
Odpowiedz
To, czego szukasz, to słownik danych. W SQLite listę wszystkich tabel można znaleźć poprzez odpytywanie tabeli sqlite_master
sqlite> create table people (first_name varchar, last_name varchar, email_address varchar);
sqlite> select * from sqlite_master;
table|people|people|2|CREATE TABLE people (first_name varchar, last_name varchar, email_address varchar)
Aby uzyskać informacje kolumny można użyć instrukcji pragma table_info(table_name)
(lub obejrzeć):
sqlite> pragma table_info(people);
0|first_name|varchar|0||0
1|last_name|varchar|0||0
2|email_address|varchar|0||0
Aby uzyskać więcej informacji na temat Pragma oświadczenia, patrz: documentation.
po prostu pójść do swojej skorupy sqlite:
$ sqlite3 path/to/db.sqlite3
a potem po prostu hit
sqlite> .schema
a dostaniesz wszystko.
Oto prosty sposób:
.schema <table>
To naprawdę powinna być odpowiedź. –
@EhteshChoudhury nie, nie powinno, pytanie prosi o kwerendę SQL, a to nie jest jedna. – jazzpi
Pytanie jest stary, ale po nie zostały jeszcze wymienione.
Innym wygodny sposób w wielu przypadkach jest przekształcenie nagłówków przez:
sqlite> .headers on
Następnie,
sqlite> SELECT ... FROM table
wyświetli nagłówek pokazujący wszystkie wybrane pola (wszystko jeśli SELECT *) u góra wyjścia.
Opierając się na powyższym, można zrobić to wszystko naraz:
sqlite3 yourdb.db ".schema"
To daje SQL do tworzenia tabeli, która jest skutecznie lista kolumn.
Wiem, minęło dużo czasu, ale nigdy nie jest za późno ... Miałem podobne pytanie z TCL jako tłumaczem, a po kilku przeszukaniach nie znalazłem nic dobrego dla mnie. Więc proponuję coś w oparciu o Pragma, wiedząc, że DB jest „głównym”
db eval { PRAGMA main.table_info(<your table name>) } TBL { puts $TBL(name) }
i używać tablicy, aby uzyskać listę
set col_list {}
db eval { PRAGMA main.table_info(<your table name>) } TBL { lappend col_list $TBL(name) }
puts $col_list
- 1. Uzyskaj listę kolumn obliczeniowych w tabeli bazy danych (SQL Server)
- 2. Jak mogę wyświetlić listę wszystkich wyzwalaczy bazy danych w sqlite?
- 3. Uzyskaj listę nazw kolumn z tabeli bazy danych Firebird
- 4. Uzyskać minimum z kolumny bazy danych SQLite?
- 5. Ograniczenie tabeli SQLite - unikalne dla wielu kolumn
- 6. Jak uzyskać listę nazw kolumn
- 7. Jak mogę uzyskać nazwy pól tabeli bazy danych?
- 8. Jak usunąć wiersz w tabeli bazy danych SQLite?
- 9. Jak mogę znaleźć listę indeksów Sybase dla danej bazy danych?
- 10. Usuń wszystkie wiersze tabeli z tabeli bazy danych SQLite
- 11. Czy mogę zaszyfrować hasło bazy danych SQLite?
- 12. Jak uzyskać listę nazw kolumn i typ danych tabeli w PostgreSQL?
- 13. połączenie bazy danych sqlite golang
- 14. SQLite: GROUP_CONCAT() wiele kolumn
- 15. Jak zainicjować listę kolumn dwóch?
- 16. Schemat bazy danych Android Sqlite
- 17. Jak uzyskać strukturę tabeli bazy danych w java?
- 18. Jak mogę odkryć strukturę bazy danych PostgreSQL?
- 19. Testowanie bazy danych SQLite Android
- 20. Jak podłączyć CakePHP do bazy danych SQLite?
- 21. Hibernate uzyskać listę z bazy
- 22. Jak przechowywać listę w lubmlite bazy danych
- 23. jak ustawić klucz podstawowy podczas zapisu pandasowej ramki danych do tabeli bazy danych sqlite za pomocą df.to_sql
- 24. Wypełnij listę rozwijaną wybierz z tabeli bazy danych
- 25. Maksymalna pojemność bazy danych SQLite
- 26. Android: zamykanie bazy danych SQLite
- 27. Sqlite3: jak zmienić kolejność kolumn w tabeli?
- 28. Szyfrowanie bazy danych SQLite w C#
- 29. jak uzyskać wartość bazy danych do tablicy String w Android (sqlite Database)
- 30. Tworzenie bazy danych w JDBC Sqlite
Great! Jak to zrobić z poziomu wiersza poleceń? Jak to zrobić z mojego własnego programu C? –
jak mogę zaimplementować to samo co powyżej w Objective-c –
@Nag, sądzę, że SQLite powinien traktować te polecenia jak zwykły SQL, przetwarzać je odpowiednio i zwracać zestaw wyników. –