SQlite自动增量主键错误值不足

2024-04-19 05:48:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用整数主键AUTOINCREMENT设置我的SQlite数据库,这样我就可以使用last_insert_rowid,但是当我尝试时,我得到了。这个脚本填充数据库,另一个不相关的程序需要能够不时地提取lase行。在

OperationalError:表PLCValues有28列,但提供了27个值

cur.execute("DROP TABLE IF EXISTS PLCValues")
cur.execute("CREATE TABLE PLCValues(ID INTEGER PRIMARY KEY AUTOINCREMENT, [timestamp] timestamp, \
    x001 NUMERIC, x002 NUMERIC, x003 NUMERIC, x004 NUMERIC, x005 NUMERIC, x006 NUMERIC, x007 NUMERIC, x008 NUMERIC,\
    y001 NUMERIC, y002 NUMERIC, y003 NUMERIC, y004 NUMERIC, y005 NUMERIC, y006 NUMERIC,\
    x201 NUMERIC, x202 NUMERIC, x203 NUMERIC, x204 NUMERIC, x205 NUMERIC, x206 NUMERIC, x207 NUMERIC, x208 NUMERIC,\
    df1 REAL, df2  REAL, df3 REAL, df4 REAL)")
.
.
.
cur.execute("INSERT INTO PLCValues VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",\
            (datetime.now(), \
            regs1[0], regs1[1], regs1[2], regs1[3], regs1[4], regs1[5], regs1[6], regs1[7],\
            regs2[0], regs2[1], regs2[2], regs2[3], regs2[4], regs2[5],\
            regs3[0], regs3[1], regs3[2], regs3[3], regs3[4], regs3[5], regs3[6], regs3[7],\
            Temp/10, Humid/10, 0, 0))

我试过好几种配置,但都不走运。在


Tags: 数据库executetable整数realtimestamp主键cur
1条回答
网友
1楼 · 发布于 2024-04-19 05:48:42

这似乎有用

        cur.execute("INSERT INTO PLCValues VALUES(null, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",\
            (datetime.now(), \
            regs1[0], regs1[1], regs1[2], regs1[3], regs1[4], regs1[5], regs1[6], regs1[7],\
            regs2[0], regs2[1], regs2[2], regs2[3], regs2[4], regs2[5],\
            regs3[0], regs3[1], regs3[2], regs3[3], regs3[4], regs3[5], regs3[6], regs3[7],\
            Temp/10, Humid/10, 0, 0))

相关问题 更多 >