반응형
여러 테이블에서 LOCK TABLES
다음과 같은 경우에 테이블이 잠기지 않았다는 오류가 발생하는 이유를 이해하려고 합니다.(WRITE) LOCK
바로 전에 발행되었습니다.
설정은 다음과 같습니다(MySQL/MariaDB).
CREATE TABLE A
(
id INT
);
CREATE TABLE B
(
id INT
);
다음은 예를 제시하겠습니다(첫 번째 케이스는 실패한 케이스입니다).
# does not work --> Error: "Table 'B' was not locked with LOCK TABLES" on 2nd statement
LOCK TABLES A WRITE, B WRITE;
INSERT INTO A (id) VALUES ((SELECT 1 FROM B)), ((SELECT 2 FROM B));
UNLOCK TABLES;
# works (single statements)
LOCK TABLES A WRITE, B WRITE;
INSERT INTO A (id) VALUES ((SELECT 1 FROM B));
INSERT INTO A (id) VALUES ((SELECT 2 FROM B));
UNLOCK TABLES;
# works (table aliases)
LOCK TABLES A WRITE, B tb1 WRITE, B tb2 WRITE;
INSERT INTO A (id) VALUES ((SELECT 1 FROM B tb1)), ((SELECT 2 FROM B tb2));
UNLOCK TABLES;
첫 번째 경우 오류의 원인은 무엇입니까?
편집: 예제를 최소한으로 다시 단순화했습니다.
언급URL : https://stackoverflow.com/questions/62695446/lock-tables-does-not-work-as-expected-with-multiple-tables
반응형
'programing' 카테고리의 다른 글
Android Studio에 번들된 JDK를 JAVA로 사용Mac에서의 홈 (0) | 2022.11.21 |
---|---|
Mysql/Mariadb delete Query는 트랜잭션입니까?그리고 엄청난 수의 행에 대한 퍼포먼스? (0) | 2022.11.21 |
JavaScript 함수에 PHP 배열을 전달합니다. (0) | 2022.11.21 |
중첩된 JavaScript 개체를 평탄화/평탄화 해제하는 가장 빠른 방법 (0) | 2022.11.21 |
문자열 매개 변수를 정수 열에 암묵적으로 캐스팅하는 MariaDB 10.3 실패 (0) | 2022.11.21 |