Python Sqlite添加一行

Python Sqlite添加一行,python,sql,sqlite,Python,Sql,Sqlite,我有一个本地sqlite服务器。SQL数据库只包含一个名为flights的表。此表flights仅包含两列:dt和flights。创建方式如下:CREATE TABLE IF NOT EXISTS flight(dt INT NOT NULL,flight INT主键)dt表示日期时间。此列dt保存每次航班的时间和日期戳。航班列是每个航班的自动增量id 我现在需要创建航班并记录ID。但我认为我下面的方法非常愚蠢。一定有比这更好的办法。下面的代码不起作用,因此我的尝试更加愚蠢。它返回当前打印的(无

我有一个本地sqlite服务器。SQL数据库只包含一个名为
flights
的表。此表
flights
仅包含两列:
dt
flights
。创建方式如下:
CREATE TABLE IF NOT EXISTS flight(dt INT NOT NULL,flight INT主键)
dt
表示日期时间。此列
dt
保存每次航班的时间和日期戳。
航班
列是每个航班的自动增量id

我现在需要创建航班并记录ID。但我认为我下面的方法非常愚蠢。一定有比这更好的办法。下面的代码不起作用,因此我的尝试更加愚蠢。它返回当前打印的
(无,)

为了进一步澄清,我需要做的就是添加一个带有时间戳的航班。然后找到我刚刚创建的航班的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连接,sql游标)
的方法。我只是把它作为一个函数来保持所有线程的启动功能相同。

您可以使用以下SQL选择最后一个自动分配的id:

SELECT last_insert_rowid()

顺便说一句:您提到了线程,SQLite不适合并发访问,所以要小心使用多个线程。

为了获得相同的效果,您可以从python调用:c.lastrowid