Перед выполнением запроса к таблице вы можете проверить, присутствует ли таблица в базе данных 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 или нет.