Я создал программу, позволяющую пользователю манипулировать базой данных, у меня есть часть, в которой пользователь может добавить несколько записей в определенную базу данных (от 1 до 10 записей). Я создал другую программу (ниже), которую я использую «перезагрузить» базу данных, используя принципы, аналогичные тем, что делает моя основная программа.
import sqlite3, time
schoolDBConn = sqlite3.connect("SCHOOL_DB.db")
schoolDBCursor = schoolDBConn.cursor()
schoolDBCursor.execute(
"""
CREATE TABLE IF NOT EXISTS USER_DETAILS
(
username text,
password text,
clearance int,
classes int
)
"""
)
schoolDBCursor.execute("SELECT * FROM USER_DETAILS")
print(schoolDBCursor.fetchall())
if input("Delete all user_details?").upper() == "Y":
schoolDBCursor.execute("DELETE FROM USER_DETAILS")
if input("add items to user_details?").upper() == "Y":
user_list = [("foo","bar",3,0),("bar","foo",3,0),("Terri","Pass",2,0),
("Chris","Pass",2,0),("Tony","Pass",2,0),("Emma","Pass",2,0),
("Thomas","Pass",1,0),("Penny","Pass",1,0),("Kamryn","Pass",1,0),
("Kelsie","Pass",1,0),("James","Pass",1,0),("Connor","Pass",1,0),
("Steve","Pass",1,0),("Bob","Pass",2,0),("Elon","Pass",1,0)]
for i in user_list:
schoolDBCursor.execute("""INSERT INTO USER_DETAILS VALUES (?,?,?,?)""",
(i[0],i[1],i[2],i[3]))
schoolDBCursor.execute("SELECT * FROM USER_DETAILS")
print(schoolDBCursor.fetchall())
Если я запускаю эту функцию, все элементы в существующей базе данных печатаются, тогда, если я решу удалить только то, что существует в базе данных, функция печати ничего не возвращает. Если я решу удалить, а затем «добавить» элементы в базу данных, функция печати вернет элементы, которые я добавила
Однако, когда я перезапускаю программу, первый оператор print возвращает исходные элементы в базе данных (не удаленную таблицу или элементы в users_list), и это, конечно, бесполезно.
Это влияет и на мою основную программу, и это вызывает проблемы, так как мне нужно, чтобы данные быстро обновлялись.
Я также использую приложение "SQlite manager" для просмотра своих таблиц, и они тоже не обновляются в этом