我想一次插入两张表。
这需要这样做。
将单行插入一个表,获取自动递增的主键,并使用我从第一个表中获得的主键值作为参考,将多行插入到其他表中。
这样做的最佳方式是什么?
答案 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)
这取决于你如何递增密钥。如果要将当前“下一个键值”存储在另一个表中,则首先提取下一个键,然后将其用于所有插入语句。最后增加另一个表中的“下一个键值”。