MySQL-테이블 복제
테이블의 정확한 사본이 필요한 상황이있을 수 있습니다. CREATE TABLE ... SELECT 사본에는 동일한 색인, 기본값 등이 포함되어야하므로 용도에 적합하지 않습니다.
아래 단계에 따라이 상황을 처리 할 수 있습니다.
SHOW CREATE TABLE을 사용하여 소스 테이블의 구조, 인덱스 및 모두를 지정하는 CREATE TABLE 문을 가져옵니다.
문을 수정하여 테이블 이름을 복제 테이블의 이름으로 변경하고 문을 실행합니다. 이렇게하면 정확한 복제 테이블을 갖게됩니다.
선택적으로 테이블 내용도 복사해야하는 경우 INSERT INTO ... SELECT 문도 실행하십시오.
예
다음 예제를 사용하여 복제 테이블을 만듭니다. tutorials_tbl.
Step 1 − 테이블에 대한 완전한 구조를 얻습니다.
mysql> SHOW CREATE TABLE tutorials_tbl \G;
*************************** 1. row ***************************
Table: tutorials_tbl
Create Table: CREATE TABLE `tutorials_tbl` (
`tutorial_id` int(11) NOT NULL auto_increment,
`tutorial_title` varchar(100) NOT NULL default '',
`tutorial_author` varchar(40) NOT NULL default '',
`submission_date` date default NULL,
PRIMARY KEY (`tutorial_id`),
UNIQUE KEY `AUTHOR_INDEX` (`tutorial_author`)
) TYPE = MyISAM
1 row in set (0.00 sec)
ERROR:
No query specified
Step 2 −이 테이블의 이름을 바꾸고 다른 테이블을 생성하십시오.
mysql> CREATE TABLE clone_tbl (
-> tutorial_id int(11) NOT NULL auto_increment,
-> tutorial_title varchar(100) NOT NULL default '',
-> tutorial_author varchar(40) NOT NULL default '',
-> submission_date date default NULL,
-> PRIMARY KEY (tutorial_id),
-> UNIQUE KEY AUTHOR_INDEX (tutorial_author)
-> ) TYPE = MyISAM;
Query OK, 0 rows affected (1.80 sec)
Step 3− 2 단계를 실행 한 후 데이터베이스에 복제 테이블을 생성합니다. 이전 테이블에서 데이터를 복사하려면 INSERT INTO ... SELECT 문을 사용하면됩니다.
mysql> INSERT INTO clone_tbl (tutorial_id,
-> tutorial_title,
-> tutorial_author,
-> submission_date)
-> SELECT tutorial_id,tutorial_title,
-> tutorial_author,submission_date
-> FROM tutorials_tbl;
Query OK, 3 rows affected (0.07 sec)
Records: 3 Duplicates: 0 Warnings: 0
마지막으로, 원하는대로 정확한 클론 테이블을 갖게됩니다.