Python Sqlite添加一行
我有一个本地sqlite服务器。SQL数据库只包含一个名为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。但我认为我下面的方法非常愚蠢。一定有比这更好的办法。下面的代码不起作用,因此我的尝试更加愚蠢。它返回当前打印的(无
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