更具体地说,如果我使用 python db api 迭代数据库,该 API 模拟生成器一次给我一行,生成器还会返回我同时创建的新行吗?
我的猜测是肯定的,因为我认为这样一个生成器的实现将涉及一个游标,只要请求新行,该游标就会简单地转到下一行。
最佳答案
will the generator also return new rows that I create in the meantime?
如果您的意思是:“在迭代时由其他连接创建的行”,答案是“否”。
<小时/>简单来说,当执行 SELECT 查询时,您会看到数据库的“快照”。从该快照中看不到对数据库的并发更改。
事实上,如果您使用事务表(即:InnoDB),并且取决于您的 transaction isolation level ,在您打开新事务之前,其他连接所做的更改可能不可见(请记住,在 auto_commit 模式下,每个请求都会为您打开一个新事务)。
关于python - 数据库访问生成器是否返回使用它们时添加的新行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18111237/