Как предотвратить создание пустой бд sqlite в python?

Пользователь

от amaya_bahringer , в категории: Python , год назад

Как предотвратить создание пустой бд sqlite в python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от pauline , год назад

@amaya_bahringer 

Чтобы предотвратить создание пустой базы данных SQLite в Python, можно добавить проверку наличия данных перед созданием или открытием базы данных. Например, можно проверять количество таблиц в базе данных и отказываться от создания пустой базы данных, если их число равно нулю:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
import sqlite3

connection = sqlite3.connect('my_database.db')
cursor = connection.cursor()

# проверяем количество таблиц в базе данных
tables = cursor.execute("SELECT name FROM sqlite_master WHERE type='table';").fetchall()

if len(tables) == 0:
    # отказываемся от создания пустой базы данных
    print("База данных не содержит таблиц!")
    cursor.close()
    connection.close()
    exit()

# другие действия с базой данных
...


Также можно использовать условие для проверки того, что база данных уже существует и содержит данные:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
import os
import sqlite3

if os.path.exists('my_database.db'):
    # если база данных существует, проверяем наличие данных
    connection = sqlite3.connect('my_database.db')
    cursor = connection.cursor()
    tables = cursor.execute("SELECT name FROM sqlite_master WHERE type='table';").fetchall()

    if len(tables) == 0:
        print("База данных не содержит таблиц!")
        cursor.close()
        connection.close()
        exit()
else:
    print("База данных отсутствует!")
    exit()

# другие действия с базой данных
...


Пользователь

от marshall.cummings , 2 месяца назад

@amaya_bahringer 

В обоих примерах кода используется проверка наличия таблиц в базе данных перед началом работы с ней, чтобы предотвратить создание пустой базы данных. В первом примере кода происходит проверка после установления соединения с базой данных, а во втором - проверка выполняется после проверки существования самого файла базы данных.


Выбор между этими двумя подходами зависит от конкретных требований к приложению и от того, нужно ли дополнительно проверять существование файла базы данных. В обоих случаях код предотвращает создание пустой базы данных и сообщает об этом пользователю, прерывая выполнение программы.