python - 数据库访问生成器是否返回使用它们时添加的新行?

标签 python mysql

更具体地说,如果我使用 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/

相关文章:

php - Mysql查询从3个不同的表中获取一个用户ID的数据

mysql - SQL 指向错误的插入/选择

mysql - 用laravel上传图片并进行图片干预到本地路径

python从字典打印

python - 语法错误 - 无法在设置变量中分配给运算符

python - 尝试使用 BeautifulSoup 从我的代码中使用 Xpath 进行网页抓取

python - 当 Subprocess shell=False 时无法读取响应

python - Groupby 当给定每个组的起始位置索引时

sql - 帮助处理主键和唯一约束

php - php 和 mysql 错误