Проверка, существует ли таблица в sqlite3 в Python

Перед выполнением запроса к таблице вы можете проверить, присутствует ли таблица в базе данных sqlite3 или нет.

Чтобы проверить, существует (Exists в sql) ли таблица в базе данных sqlite3 на Python, вы можете запросить таблицу sqlite_master для имен таблиц, которые соответствуют имени вашей таблицы.

SQL-запрос

Запрос sql для проверки, присутствует ли таблица с заданным именем в базе данных или нет, приведен ниже.

SELECT name FROM sqlite_master WHERE type='table' AND name='table_name';

Где, table_name в предложении where следует заменить на имя вашей таблицы.

По результатам этого запроса вы можете проверить, есть ли в результате какие-либо строки. Если в результате есть одна строка, значит, таблица существует.

Пример 1

В этом примере мы проверим, существует ли таблица.

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

В этом примере мы собираемся проверить скрипт, когда таблица с именем dummy отсутствует в базе данных sqlite3, и мы собираемся проверить это программно.

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 или нет.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *