Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

테이블을 복사하는 MySQL 명령?

<시간/>

INSERT INTO SELECT 문을 사용하여 이를 수행할 수 있습니다. 구문은 다음과 같습니다 -

INSERT INTO yourDatabaseName.yourTableName(SELECT *FROM yourDatabaseName.yourTableName);

위의 구문을 이해하기 위해 데이터베이스에 테이블을 만들고 다른 데이터베이스에 두 번째 테이블을 만듭니다.

데이터베이스 이름은 "bothinnodbandmyisam"입니다. 동일한 데이터베이스에 테이블을 생성해 보겠습니다. 쿼리는 다음과 같습니다 -

mysql> create table Student_Information
   -> (
   -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> Name varchar(10),  
   -> Age int
   -> );
Query OK, 0 rows affected (0.67 sec)

이제 insert 명령을 사용하여 테이블에 일부 레코드를 삽입할 수 있습니다. 쿼리는 다음과 같습니다 -

mysql> insert into Student_Information(Name,Age) values('Larry',30);
Query OK, 1 row affected (0.20 sec)
mysql> insert into Student_Information(Name,Age) values('Mike',26);
Query OK, 1 row affected (0.19 sec)
mysql> insert into Student_Information(Name,Age) values('Bob',26);
Query OK, 1 row affected (0.12 sec)
mysql> insert into Student_Information(Name,Age) values('Carol',24);
Query OK, 1 row affected (0.15 sec)

이제 select 문을 사용하여 테이블의 모든 레코드를 표시할 수 있습니다. 쿼리는 다음과 같습니다 -

mysql> select *from Student_Information;

다음은 출력입니다 -

+----+-------+------+
| Id | Name  | Age  |
+----+-------+------+
|  1 | Larry |   30 |
|  2 | Mike  |   26 |
|  3 | Bob   |   26 |
|  4 | Carol |   24 |
+----+-------+------+
4 rows in set (0.00 sec)

다음은 두 번째 데이터베이스입니다 -

mysql> use sample;
Database changed

이제 이 데이터베이스에 하나의 테이블만 만듭니다. 쿼리는 다음과 같습니다 -

mysql> create table Student_Table_sample
   -> (
   -> StudentId int NOT NULL AUTO_INCREMENT,
   -> StudentName varchar(20),
   -> StudentAge int ,
   -> PRIMARY KEY(StudentId)
   -> );
Query OK, 0 rows affected (0.57 sec)

다음은 테이블을 복사하는 명령입니다. 쿼리는 다음과 같습니다 -

mysql> insert into sample.Student_Table_sample(select *from bothinnodbandmyisam.Student_Information);
Query OK, 4 rows affected (0.23 sec)
Records: 4 Duplicates: 0 Warnings: 0

4개의 레코드가 영향을 받았으며 이는 테이블이 성공적으로 복사되었음을 의미합니다. 두 번째 테이블 'Student_Table_sample'의 모든 레코드를 표시하는 쿼리는 다음과 같습니다.

쿼리는 다음과 같습니다 -

mysql> select *from Student_Table_sample;

다음은 다른 데이터베이스에 있는 테이블의 레코드를 표시하는 출력입니다. -

+-----------+-------------+------------+
| StudentId | StudentName | StudentAge |
+-----------+-------------+------------+
|         1 | Larry       |         30 |
|         2 | Mike        |         26 |
|         3 | Bob         |         26 |
|         4 | Carol       |         24 |
+-----------+-------------+------------+
4 rows in set (0.00 sec)