Jak sprawdzić, czy plik bazy danych już istnieje? A jeśli to istnieje, w jaki sposób mogę sprawdzić, czy ma już określoną tabelę, czy nie?sqlite3 w języku Python
Odpowiedz
Aby sprawdzić, czy istnieje baza danych, można sqlite3.connect
do pliku, który myśli, że zawiera bazę danych, i spróbuj uruchomić kwerendę na nim. Jeśli jest nie bazy danych, pojawi się ten błąd:
>>> c.execute("SELECT * FROM tbl")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
sqlite3.DatabaseError: file is encrypted or is not a database
sqlite3.connect
będzie utworzyć bazę danych, jeśli nie istnieje; jak @johnp wskazuje w komentarzach, os.path.exists
powie Ci, czy plik istnieje.
Aby sprawdzić istniejące tabele, należy query against sqlite_master. Na przykład:
>>> def foo(name):
... for row in c.execute("SELECT name FROM sqlite_master WHERE type='table'"):
... if row == (name,):
... return True
... return False
...
>>> foo("tz_data")
True
>>> foo("asdf")
False
hmm ... czy wywołanie sqlite3.connect() automatycznie tworzy bazę danych? – john2x
@ john2x - tak, robi. –
Jeśli chcesz sprawdzić, czy plik istnieje, os.path.exists użytku(): import os.path os.path.exists ('dbname.db') wykonać to sprawdzić przed sqlite3.connect (), aby uniknąć tworzenia bazy danych, jeśli nie istnieje. –
- 1. Jak uzyskać symbole zastępcze o zmiennej długości w wywołaniu w języku Python do SQLite3
- 2. Deskryptory w języku Python nie działają w języku Python 2.7
- 3. Pakiety w języku Python?
- 4. Wątki w języku Python
- 5. iteritems w języku Python
- 6. ++ operator w języku Python
- 7. Logowanie w języku Python?
- 8. Przerwa w języku Python
- 9. Dlaczego Python + sqlite3 jest bardzo wolny?
- 10. Python sqlite3.OperationalError: brak takiej tabeli:
- 11. Python 3.2: Nie można zaimportować modułu sqlite3
- 12. Python Sqlite3 Uzyskaj ścieżkę połączenia Sqlite
- 13. UPDATE tabela krzyżowa w Sqlite3
- 14. Python - Jak wyciąć napis w języku Python?
- 15. Skrypty w języku Python: GUI?
- 16. Łańcuch wyjątków w języku Python
- 17. Zakres następnego() w języku Python
- 18. Emulacja listy w języku Python
- 19. Cel symboli @ w języku Python?
- 20. Drukowanie grafiki w języku Python
- 21. Klaster obliczeń w języku Python
- 22. Pola alertów w języku Python?
- 23. Ograniczanie przepustowości w języku Python
- 24. Odpowiednik JavaBean w języku Python
- 25. Dokumentacja pakowania w języku Python
- 26. Regresja krokowa w języku Python
- 27. Rejestrowanie globalne w języku Python
- 28. Kolejka iteracyjna w języku Python
- 29. Selektor iteratora w języku Python
- 30. Robot Motion w języku Python
Zobacz http://stackoverflow.com/questions/211501/using-sqlite-in-a-python-program, http://stackoverflow.com/questions/1449495/can-i- test-for-the-exist-of-a-table-in-a-sqlite-database –