SQL:
INSERT LOW_PRIORITY IGNORE INTO A_new (??) SELECT ?? FROM A FORCE INDEX(`PRIMARY`)
WHERE ((`id` >='XX' )) AND ((`id` <= 'XX')) LOCK IN SHARE MODE;
是否可以在范围行中添加S锁而不进行任何交易?
如果不是,此sql仅在事务中起作用吗?
答案 0 :(得分:0)
我从mysql文档中得到了答案。
从...位置插入SELECT ... 在插入T的每一行上记录锁定(无间隙锁定)。 事务隔离级别为READ COMMITTED,InnoDB进行搜索 在S上作为一致读取(无锁)。否则,InnoDB设置共享 S上的行上的下一键锁。InnoDB必须在后者中设置锁 案例:在使用基于语句的二进制日志进行前滚恢复期间, 每个SQL语句必须以与以前完全相同的方式执行 原来完成的。