如何让ID在数据库中自动生成?

时间:2018-09-03 08:00:31

标签: python python-3.x sqlite

这是我的代码:

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

我该怎么做?

1 个答案:

答案 0 :(得分:0)

您有一个INTEGER PRIMARY KEY列,如果您在插入项目时将其保留为空白,则会自动递增:

INSERT INTO this_database(file_name, url, time, type, description)
            VALUES (?,?,?,?,?)

由于省略了id,因此每次使用上述语句插入值时,sqlite都会自动为其分配一个数字。

The documentation对此进行解释。