当我尝试将数据插入我的数据库时,它只是简单地覆盖整个文件或不正确保存它。 我对这个脚本的想法是,如果我多次运行它会输出:
(1, 126)
(2, 127)
(3, 126)
(4, 127)
我现在也知道,如果我没有在脚本中创建表格,它会给我一个错误,即表格不存在,即使表格是在上次运行脚本时创建的。“ / p>
import sqlite3
# Connecting to the database file
conn = sqlite3.connect("MyDB.db")
c = conn.cursor()
# Check if table exists
c.execute("DROP TABLE IF EXISTS t1")
# Create table
c.execute('''CREATE TABLE t1(
a INTEGER PRIMARY KEY,
b INTEGER);''')
# Insert value
c.execute('''INSERT INTO t1 VALUES(NULL,126);''')
c.execute('''INSERT INTO t1 VALUES(NULL,127);''')
# Save changes
conn.commit()
for row in c.execute('SELECT * FROM t1'):
print(row)
# Output:
# (1, 126)
# (2, 127)
conn.close()
我真的希望这项工作能够发挥作用,因为我正在开展一个学校项目,我的产品将在这个项目中建立一个功能性商店,您可以在其中添加,删除产品并按照添加日期对其进行排序。
答案 0 :(得分:2)
两个问题:
如果存在则丢弃表格,这将始终删除表格:
c.execute("DROP TABLE IF EXISTS t1")
您在删除后重新创建表:
c.execute('''CREATE TABLE t1(
a INTEGER PRIMARY KEY,
b INTEGER);''')
您可以对上面的代码进行评论并重新运行脚本以获得所需的输出。但是,在最终版本中,确保在写入之前检查db和table是否存在。