gpt4 book ai didi

sqlite - 插入多个表SQLITE

转载 作者:行者123 更新时间:2023-12-03 15:30:51 26 4
gpt4 key购买 nike

如何将一行插入一个表并将该行生成的ID用于另一行,以便整个事务都可以进行事务处理?
我遇到的问题是,由于我有10万条记录,因此存在巨大的db延迟,但是一次只能进行1-100次事务。

INSERT INTO foo;
INSERT into bar(foo_id) VALUES (last_foo_id)
INSERT into bar(foo_id) VALUES (last_foo_id)
INSERT into bar(foo_id) VALUES (last_foo_id)
INSERT into bar(foo_id) VALUES (last_foo_id)
INSERT into bar(foo_id) VALUES (last_foo_id)
INSERT INTO foo;
INSERT into bar(foo_id) VALUES (last_foo_id)
INSERT into bar(foo_id) VALUES (last_foo_id)
INSERT into bar(foo_id) VALUES (last_foo_id)
INSERT into bar(foo_id) VALUES (last_foo_id)
INSERT into bar(foo_id) VALUES (last_foo_id)

最佳答案

插入foo记录后,用sqlite3_last_insert_rowid(或数据库包装程序用于该记录的任何内容)读取其ID,并在以下所有bar插入语句中使用该值:

db.execute("BEGIN TRANSACTION")
db.execute("INSERT INTO foo ...")
foo_id = db.last_insert_rowid
db.execute("INSERT INTO bar(foo_id) VALUES (?)", [foo_id])
...
db.execute("COMMIT TRANSACTION")

关于sqlite - 插入多个表SQLITE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16944372/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com