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

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

от amaya_bahringer , в категории: Python , 3 месяца назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

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

от pauline , 3 месяца назад

@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()

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