在sqlite中插入多行到多个表中的表

问题描述:

我想一次插入到两个表中。在sqlite中插入多行到多个表中的表

这需要这样做。

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

这样做的最好方法是什么?

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"]) 
+0

谢谢。与获取getWritableDatabase()的返回值相同,插入并使用该键作为参考? – Najiya 2014-09-10 13:19:51

+0

是的(如果你想知道如何在Android上做到这一点,你应该在问题中提到这一点)。 – 2014-09-10 13:32:16

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

+0

我使用的是自动增量密钥 – Najiya 2014-09-10 13:20:36

+0

好的,我意识到在发布之后,我的道歉。 – 2014-09-10 13:21:27