python sqlite create id INTEGER主键自动递增

2024-10-01 15:32:53 发布

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

创建一个简单的数据库,并使行具有id,以便以后可以选择行值:

conn = sqlite3.connect("APIlan.db")
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS ENERGYLOG (id INTEGER PRIMARY KEY AUTOINCREMENT, totalenergy REAL)''')
c.execute("INSERT INTO ENERGYLOG VALUES (?);", (total_energy,))
conn.commit()       
conn.close()

错误sqlite3.OperationalError: table ENERGYLOG has 2 columns but 1 values were supplied

第二次尝试:

^{pr2}$

错误NameError: name 'NULL' is not defined

如果不提供id的值,如何将其放入表中?谢谢。在


Tags: id数据库executedbifconnect错误create
2条回答

我有两个解决方案。在

1.第一次尝试,如果只想插入您选择的列,可以按照以下语法:

INSERT INTO TABLE_NAME (column1, column2, column3,...columnN)] VALUES (value1, value2, value3,...valueN);

你可以这样写:

^{pr2}$

2.第二次尝试,如果要插入所有列,可以将“NULL”替换为“None”:

c.execute("INSERT INTO ENERGYLOG VALUES (?, ?);", (None, total_energy))

因为python不知道“NULL”。在

在SQL中我们使用“NULL”,在python中使用“None”。在

希望它能帮助你!在

应明确列出要插入的列:

c.execute("INSERT INTO ENERGYLOG (totalenergy) VALUES (?);", (total_energy,))

至于参数化NULL,您应该指定None作为参数值:

^{pr2}$

或者,使用NULL和单个参数:

c.execute("INSERT INTO ENERGYLOG VALUES (NULL, ?);", (total_energy,))

相关问题 更多 >

    热门问题