>  기사  >  데이터 베이스  >  MySQL_MySQL에서 두 테이블 이름을 바꾸는 방법

MySQL_MySQL에서 두 테이블 이름을 바꾸는 방법

WBOY
WBOY원래의
2016-09-09 08:13:431014검색

머리말

이전 실습에서 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을 사용하는 모든 사람에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.