这是我的代码:
import sqlite3
def insert(fields=(), values=()):
connection = sqlite3.connect('database.db')
# g.db is the database connection
cur = connection.cursor()
query = 'INSERT INTO this_database (%s) VALUES (%s)' % (
', '.join(fields),
', '.join(['?'] * len(values))
)
cur.execute(query, values)
connection.commit()
id = cur.lastrowid
cur.close()
print (id)
测试示例:
insert(fields = ("id", "file_name", "url", "time", "type", "description"), values = (2, "file1", "wwww.test.com", "1", "photo", "my first database test"))
我不想手动给id
。我想让它自动添加it+1
。
我怎样才能做到这一点?
你有一个INTEGER PRIMARY KEY
列,如果你在插入项目时将其遗漏,它会自动递增:
INSERT INTO this_database(file_name, url, time, type, description)
VALUES (?,?,?,?,?)
由于省略了id
,因此每次使用上述语句插入值时,都会自动为sqlite分配一个数字。
The documentation解释这一点。