Автор оригинала: Python Examples.
Проверьте, существует ли таблица в базе данных SQLite3
Перед запуском запроса на столе вы можете проверить, присутствует ли таблица в базе данных SQLite3 или нет.
Чтобы проверить, существует ли таблица в базе данных Python SQLite3, вы можете запросить sqlite_master
Таблица для имен таблиц, которые соответствуют вашему названию таблицы.
SQL Query.
Запрос SQL, чтобы проверить, присутствует ли таблица с заданным именем в базе данных или нет, приведена ниже.
SELECT name FROM sqlite_master WHERE type='table' AND name='table_name';
где table_name
В той случае следует заменить предложение на ваше имя таблицы.
Из результатов этого запроса вы можете проверить, есть ли какие-либо строки, присутствующие в результате. Если в результате есть один ряд, то таблица существует.
Пример 1: Проверьте, существует ли таблица в SQLite3
В нашей предыдущей статье создайте таблицу в Python SQLite3, мы создали таблицу с именем студентов. Теперь в этом примере мы проверим, существует ли таблица программно.
Python Program
import sqlite3 conn = sqlite3.connect('mysqlite.db') c = conn.cursor() #get the count of tables with the name c.execute(''' SELECT count(name) FROM sqlite_master WHERE type='table' AND name='students' ''') #if the count is 1, then table exists if c.fetchone()[0]==1 : { print('Table exists.') } #commit the changes to db conn.commit() #close the connection conn.close()
Выход
Table exists.
Пример 2: Проверьте, существует ли таблица в базе данных SQLite3 (отрицательный сценарий)
В этом примере мы собираемся проверить негативный сценарий, где таблица с именем манекен
Нет в базе данных SQLite3, и мы собираемся проверить его программно.
Python Program
import sqlite3 conn = sqlite3.connect('mysqlite.db') c = conn.cursor() #get the count of tables with the name c.execute(''' SELECT count(name) FROM sqlite_master WHERE type='table' AND name='students1' ''') #if the count is 1, then table exists if c.fetchone()[0]==1 : print('Table exists.') else : print('Table does not exist.') #commit the changes to db conn.commit() #close the connection conn.close()
Выход
Table does not exist.
Проверьте, существует ли таблица в памяти (RAM)
Если вы проверяете существование таблицы в памяти (RAM), то в использовании запроса sqlite_temp_master вместо sqlite_master Отказ Образец запроса дается входит.
SELECT name FROM sqlite_temp_master WHERE type='table' AND name='table_name';
Резюме
В этом руководстве примеров Python мы узнали, как проверить, существует ли данная таблица в базе данных SQLite3 или нет.