这是我的代码:
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
。
我该怎么做?
答案 0 :(得分:0)
您有一个INTEGER PRIMARY KEY
列,如果您在插入项目时将其保留为空白,则会自动递增:
INSERT INTO this_database(file_name, url, time, type, description)
VALUES (?,?,?,?,?)
由于省略了id
,因此每次使用上述语句插入值时,sqlite都会自动为其分配一个数字。
The documentation对此进行解释。