在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
我使用的是自动增量密钥 – Najiya 2014-09-10 13:20:36
+0
好的,我意识到在发布之后,我的道歉。 – 2014-09-10 13:21:27
谢谢。与获取getWritableDatabase()的返回值相同,插入并使用该键作为参考? – Najiya 2014-09-10 13:19:51
是的(如果你想知道如何在Android上做到这一点,你应该在问题中提到这一点)。 – 2014-09-10 13:32:16