在sqlite中将多行插入多个表中

时间:2014-09-10 13:08:02

标签: sqlite

我想一次插入两张表。

这需要这样做。

将单行插入一个表,获取自动递增的主键,并使用我从第一个表中获得的主键值作为参考,将多行插入到其他表中。

这样做的最佳方式是什么?

2 个答案:

答案 0 :(得分:0)

SQLite具有内置的last_insert_rowid()函数,但在下次插入后其返回值会发生变化。

您必须阅读程序中的值,然后手动插入:

db.execute("INSERT INTO People(Name) VALUES (?)", ["Joe"])
id = db.last_insert_rowid
db.execute("INSERT INTO Pets(Owner, Name) VALUES (?,?)", [id, "Fluffy"])
db.execute("INSERT INTO Pets(Owner, Name) VALUES (?,?)", [id, "Spot"])

答案 1 :(得分:0)

这取决于你如何递增密钥。如果要将当前“下一个键值”存储在另一个表中,则首先提取下一个键,然后将其用于所有插入语句。最后增加另一个表中的“下一个键值”。