Я пытаюсь заполнить таблицу sqlite3 данными из скрипта Python, но моя 2-я вставка всегда не может обновиться.
Я пытался вызвать две функции, которые имеют две отдельные команды, выполняющие много действий в таблице.
db_file_name = 'students.db'
conn = sqlite3.connect(db_file_name,)
cursor = conn.cursor()
def create_table():
conn.execute("""CREATE TABLE IF NOT EXISTS students(
FirstName text,
SurName text,
Class text,
Major text,
Minor text
);""")
conn.commit()
Это прекрасно работает, затем я перехожу на:
def insert_names():
try:
sql = "INSERT INTO students(FirstName,SurName) VALUES(?, ?)"
cursor.executemany(sql,full_names)
except sqlite3.IntegrityError as e:
print('sqlite error: ', e.args[0])
conn.commit()
def insert_class_degree():
try:
sql = "INSERT INTO students(Class,Major,Minor) VALUES(?, ?, ?)"
cursor.executemany(sql,class_dept)
except sqlite3.IntegrityError as e:
print('sqlite error: ', e.args[0])
create_table()
insert_names()
insert_class_degree()
conn.commit()
conn.close()
full_names - список кортежей:
[('firstname','lastname'),('firstname','lastname')]
class_dept - списоккортежи:
[('senior','art','history'),('freshman','math','biology')]
Если я запускаю обе функции, вторая функция не вставляет в базу данных, а только первая функция. Я могу запустить каждую функцию при ее включении, и она будет правильно вставлять данные, но при запуске вместе вторая функция не вставляет никаких данных и не выдает ошибку.
Я не получаю никаких ошибок, я используюsqlite studio для подключения и просмотра базы данных во время тестирования.