我有一个查询将一些数据插入表中。该查询具有到另一个表的连接。 在查询运行时是否会锁定其他表?
-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事务中运行。
答案 0 :(得分:0)
插入时会被锁定。通过交易进行插入会更好。
答案 1 :(得分:0)
我找到了解决方案。将transaction-isolation =设置为&#34; READ-COMMITTED&#34;时,read语句不会锁定表。
请参阅:http://harrison-fisk.blogspot.ch/2009/02/my-favorite-new-feature-of-mysql-51.html