2
매뉴얼에서는 InnoDB가 행 레벨 잠금을 가지고 있다고 언급 했으므로, FOR UPDATE
문으로 행을 선택하면 왜 그 테이블에 새로운 행을 삽입 할 수 없습니까? 결국 새 행을 잠그지 않아야합니다. 선택되지 않았습니다.MySQL 5 InnoDB에서 부분적으로 잠긴 테이블에 새로운 행을 삽입 할 수없는 이유는 무엇입니까?
매뉴얼에서는 InnoDB가 행 레벨 잠금을 가지고 있다고 언급 했으므로, FOR UPDATE
문으로 행을 선택하면 왜 그 테이블에 새로운 행을 삽입 할 수 없습니까? 결국 새 행을 잠그지 않아야합니다. 선택되지 않았습니다.MySQL 5 InnoDB에서 부분적으로 잠긴 테이블에 새로운 행을 삽입 할 수없는 이유는 무엇입니까?
InnoDB에서 자동 증가 열의 삽입은 테이블 잠금을 초래합니다. FOR UPDATE 행을 선택하면 행 수준 잠금이 발생합니다.
행 잠금이있는 경우 테이블 잠금을 얻을 수 없으므로 UPDATE는 해당 트랜잭션이 커밋 될 때까지 INSERT를 금지합니다.