【问题标题】:Mysql: Are join tables locked on insert?Mysql:连接表是否在插入时锁定?
【发布时间】:2014-12-22 10:03:00
【问题描述】:

我收到一个查询,将一些数据插入到表中。该查询连接到另一个表。 查询运行时是否会锁定另一个表?

-e-

这是一个类似于我正在使用的查询:

INSERT INTO table_1
SELECT    t3.first_row,
          t3.second_row
FROM      table_2 t2
          INNER JOIN
          table_3 t3
          ON t2.t3_fk = t3.id
WHERE t3.id IN (1, 2, 3, 4)
AND   t2.created_at  <= '2014-12-21 22:59:59'

查询正在 Rails 事务中运行。

【问题讨论】:

  • 没有。在插入要在其中插入将锁定的数据的表时。

标签: mysql ruby-on-rails join transactions locking


【解决方案1】:

插入时会被锁定。通过事务插入会好很多。

【讨论】:

  • “通过事务插入”是什么意思?我在上面编辑了我的问题。
【解决方案2】:

我找到了解决方案。将 transaction-isolation= 设置为“READ-COMMITTED”时,读取语句不会锁定表。

见:http://harrison-fisk.blogspot.ch/2009/02/my-favorite-new-feature-of-mysql-51.html

【讨论】:

    猜你喜欢
    • 2010-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-21
    • 2022-07-12
    • 1970-01-01
    • 1970-01-01
    • 2016-07-27
    相关资源
    最近更新 更多