gpt4 book ai didi

python - Django 事务锁定表

转载 作者:可可西里 更新时间:2023-11-01 07:38:03 25 4
gpt4 key购买 nike

不幸的是,我需要更新、添加和删除 auth.models.User 表中的行...

当我这样做时,表会锁定,我无法对该表执行任何 SELECT 查询。


我通过 @transaction.commit_manually 围绕这些查询,这可能与表锁定有关。

交易如下所示:

for row in csv_reader:

update_sql = "UPDATE auth_user SET last_name = '%s' WHERE username = '%s'" %(row[2], row[0] )
cursor.execute(update_sql)
if not index % 100: print index:
print index
transaction.commit()

此外,我正在使用 Sql Server 2008,我想知道它是否是 Sql Server 特定的,或者此类操作也会锁定 PostgreSQL 和 MySQL 中的表。


有什么想法吗? :)

最佳答案

是的,您是故意锁定表的。我建议学习 transaction isolation因为它是数据库的核心概念之一。

至于您的问题,您可以为 UPDATE 和 SELECT 语句做几件事:

  • 你可以SET the transaction isolation level为数据库连接的其余部分降低一些。
  • 你或许可以对 other mechanisms 做同样的事情也是。
  • 您可以尝试重新安排您的查询,以便首先读取基础数据,然后再开始修改数据。这可能允许您锁定表但允许操作继续进行。
  • 您可以再次考虑哪些查询对于事务处理很重要。
  • 您还可以使用 Locking Hints 引导 SQL Server .

关于python - Django 事务锁定表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4671523/

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