AUTOINCREMENT列字段要求输入值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AUTOINCREMENT列字段要求输入值相关的知识,希望对你有一定的参考价值。

我创建了一个带有自动增量字段的数据库:

filecur.execute("CREATE TABLE IF NOT EXISTS File_Data (_FID INTEGER PRIMARY KEY AUTOINCREMENT, UID INTEGER(1000000), FileName varchar2 (15), Date_ varchar2 (15))")
filecur.execute("insert into File_Data values (?, ?, ?)", (uid, filename, today))

但是,当我尝试在此表中插入值时,我收到一条错误消息,表示我在一个包含4个字段的表中仅提供了3个值。自动增量不应该单独工作,还是我错过了什么?任何帮助将不胜感激,谢谢!

答案

您必须指定要插入的列,例如:

filecur.execute("insert into File_Data(UID, FileName, Date_) values(?, ?, ?)",
                (uid, filename, today))

请注意,您可以显式插入自动增量字段,例如:

filecur.execute("insert into File_Data(FID_, UID, FileName, Date_) values (?, ?, ?, ?)",
                (fid, uid, filename, today))

但通常你不会这样做。

以上是关于AUTOINCREMENT列字段要求输入值的主要内容,如果未能解决你的问题,请参考以下文章

[QT][SQL]sql学习记录5_sqlite Autoincrement(自动递增)

使用用户 ID 更新列字段的 Mysql 语法

AUTOINCREMENT 自动增量

SQL AUTO INCREMENT 字段

要求失败:OneHotEncoderModel 预期输入列标签的 x 分类值,但输入列具有指定 n 值的元数据

Liquibase:将 autoIncrement 列添加到已存在数据的表中