머리말
이전 실습에서 pt-osc와 유사한 시나리오에서 두 테이블 이름을 바꿔야 하는 문제가 발생했습니다.
분석
어떤 사람들은 테이블 이름을 서로 RENAME하는 것이 쉽지 않다고 생각할 수도 있습니다.
그러나 우리가 원하는 것은 테이블 이름 스왑을 동시에 완료하는 것입니다. 테이블 이름이 차례로 스왑되면 일부 데이터 쓰기가 실패할 수 있습니다.
솔루션
사실 MySQL 매뉴얼에서 방법을 찾을 수 있습니다. 2개의 테이블을 동시에 잠그고 쓰기를 허용하지 않은 다음 테이블 이름을 바꾸세요.
보통 하나의 테이블만 잠그는데, 두 테이블을 동시에 잠그려면 어떻게 해야 할까요?
LOCK TABLES t1 WRITE, t2 WRITE; ALTER TABLE t1 RENAME TO t3; ALTER TABLE t2 RENAME TO t1; ALTER TABLE t3 RENAME TO t2; UNLOCK TABLES;
실제로는 매우 간단합니다. 두 테이블에 동시에 테이블 수준 쓰기 잠금을 추가한 다음 ALTER 구문을 사용하여 이름을 바꾸면 됩니다.
위 내용은 MySQL에서 두 테이블 이름을 바꾸는 방법에 대한 내용입니다. 이 글이 MySQL을 사용하는 모든 사람에게 도움이 되기를 바랍니다.