python - AUTOINCREMENT 列字段要求输入值

标签 python database sqlite

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

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))

但通常你不会那样做。

关于python - AUTOINCREMENT 列字段要求输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53450631/

相关文章:

c++ - 在 C++ 中将 sqlite 结果转换为 std::string

sql - 使用DB Browser for SQLite从一种日期格式转换为另一种日期格式

mysql - 如何查询MySQL数据库原理图

python - 一副牌,交替发牌

python - 无法pickle连接对象

python - QAbstractTabelModel.data() 总是获取 index.row() == 0 并且只显示 1 行

sql - 如何为动态生成 Select 语句的 30 列表创建索引

ruby-on-rails - ruby rails : Update boolean record in database

python - 如何从抓取的 URL 列表中下载图像?

为多个供应商发现 sql 数据库模式的 C++ 库?