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

问题描述 投票:0回答:1

这是我的代码:

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

我怎样才能做到这一点?

python python-3.x sqlite
1个回答
0
投票

你有一个INTEGER PRIMARY KEY列,如果你在插入项目时将其遗漏,它会自动递增:

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

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

The documentation解释这一点。

© www.soinside.com 2019 - 2024. All rights reserved.