Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL为_update()选择_并触发。。阻塞是如何工作的?_Mysql_Sql_Django_Database_Innodb - Fatal编程技术网

MySQL为_update()选择_并触发。。阻塞是如何工作的?

MySQL为_update()选择_并触发。。阻塞是如何工作的?,mysql,sql,django,database,innodb,Mysql,Sql,Django,Database,Innodb,我有一个整数值的行,该行上有许多并发请求,我希望每个读取操作后面都有一个更新操作(增量),并保持数据一致,同时只有一个请求可以读取->更新。 我做了一些研究,找到了select_for_update(),我还想在select上做一个触发器,在选择后增加值,问题是。。这会像我假设的那样有效吗? 触发器是并行工作还是以这种方式一致?djangoselect\u for\u update是select的包装器。。。for update功能存在于最常见的数据库(postgres、mysql、or

我有一个整数值的行,该行上有许多并发请求,我希望每个读取操作后面都有一个更新操作(增量),并保持数据一致,同时只有一个请求可以读取->更新。

我做了一些研究,找到了select_for_update(),我还想在select上做一个触发器,在选择后增加值,问题是。。这会像我假设的那样有效吗?


触发器是并行工作还是以这种方式一致?

django
select\u for\u update
select的包装器。。。for update
功能存在于最常见的数据库(postgres、mysql、oracle…)中,它基本上针对并发更新锁定所选行


您需要将锁包装到事务中,以便在事务执行结束之前锁定访问。

如果我使用transaction.atomic()打开事务,并在transaction.atomic()语句中使用select\U for\U update(),行是否会锁定到事务的最后一行。atomic()块?是,所有匹配的行将被锁定,直到事务块结束。您可以通过在事务块中放入时间睡眠来测试此行为,并在执行仍在块内时尝试更新行。