mysql select for update 根据二级索引, 查询不到记录时怎么加锁的?

新手上路,请多包涵

表结构

CREATE TABLE `table1` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
  `account_name` varchar(65) NOT NULL COMMENT ,
  PRIMARY KEY (`id`),
  KEY `idx_an` (`account_name`,`already_login`),
) ENGINE=InnoDB AUTO_INCREMENT=56 DEFAULT CHARSET=utf8;
select * from table1 where name='1'  for update;

当表里面没有这个数据时,怎么加锁的?

阅读 4k
1 个回答

RC级别,锁所有记录,server层过滤取消这些锁,等同不加锁。
RR级别,所有存在记录加记录锁,所有间隙加GAP,等同锁表。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题