MySql查询 - 从B插入A select *(B仍然填充)

时间:2015-04-12 19:26:14

标签: mysql sql innodb

我正在使用mysql 5.5, 当我执行查询时会发生什么:

Insert into A select * from B ;

同时其他进程将记录插入表B? InnoDB可以处理这种情况吗?这些表将在执行结束时同步吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

引用Locks Set by Different SQL Statements in InnoDB

的Mysql文档
  

INSERT INTO T SELECT ... FROM S WHERE ...设置独占索引   在插入T的每一行上没有间隙锁定的记录。如果   启用innodb_locks_unsafe_for_binlog和事务   隔离级别不是SERIALIZABLE,InnoDB在S上进行搜索   一致读(无锁)。否则,InnoDB设置共享的下一个密钥   锁定来自S.的InnoDB必须在后一种情况下设置锁定:In   从备份前滚恢复,每个SQL语句必须是   以与原先完成相同的方式执行。

答案 1 :(得分:0)

没有

即使它们在INSERT之后同步,新插入也会很快使它们不同步。

您的真实目标是什么?