Python Sqlite添加一行

时间:2012-07-04 02:45:50

标签: python sql sqlite

我有一个本地sqlite服务器。 SQL数据库仅包含一个名为flights的表。此表格flights仅包含两列:dtflight。它的创建方式如下:CREATE TABLE IF NOT EXISTS flight (dt INT NOT NULL, flight INT PRIMARY KEY);dt代表日期时间。此列dt包含每个航班的时间和日期戳。 flight列是每个航班的自动增量ID。

我现在需要创建航班并记录ID。但我认为我的方法非常愚蠢。必须有一个比这更好的方法。下面的代码不起作用,从而增加了我的尝试的愚蠢。它当前返回打印(None,)

为了补充说明,我需要做的就是使用提供的时间戳添加航班。然后找到我刚刚创建的航班的ID。应该够简单。

t = (int(time.time()),)
conn, c = AT.startSQLdb()
c.execute("INSERT INTO flight VALUES (?,NULL);",t)
c.execute("SELECT flight FROM flight WHERE dt=?;",t)
print c.fetchone()
conn.commit()

顺便说一句,AT.startSQLdb()只是一个返回元组(sql connection, sql cursor)的方法。我只是将它作为一个函数来保持所有线程的启动功能相同。

1 个答案:

答案 0 :(得分:3)

您可以使用此SQL选择上次自动分配的ID:

SELECT last_insert_rowid()
BTW:你提到线程,SQLite对并发访问并不好,所以要注意多个线程。