Computer >> Máy Tính >  >> Lập trình >> MySQL

Lệnh MySQL để sao chép bảng?

Bạn có thể đạt được điều này với sự trợ giúp của câu lệnh INSERT INTO SELECT. Cú pháp như sau -

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

Để hiểu cú pháp trên, chúng ta hãy tạo một bảng trong cơ sở dữ liệu và bảng thứ hai trong cơ sở dữ liệu khác

Tên cơ sở dữ liệu là “bothinnodbandmyisam”. Hãy để chúng tôi tạo một bảng trong cùng một cơ sở dữ liệu. Truy vấn như sau -

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)

Bây giờ bạn có thể chèn một số bản ghi trong bảng bằng cách sử dụng lệnh insert. Truy vấn như sau -

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)

Bây giờ bạn có thể hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select. Truy vấn như sau -

mysql> select *from Student_Information;

Sau đây là kết quả -

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

Đây là cơ sở dữ liệu thứ hai -

mysql> use sample;
Database changed

Bây giờ chỉ tạo một bảng duy nhất trong cơ sở dữ liệu này. Truy vấn như sau -

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)

Đây là lệnh để sao chép một bảng. Truy vấn như sau -

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

Bốn bản ghi bị ảnh hưởng có nghĩa là bảng được sao chép thành công. Truy vấn như sau để hiển thị tất cả các bản ghi từ bảng thứ hai ‘Student_Table_sample’.

Truy vấn như sau -

mysql> select *from Student_Table_sample;

Sau đây là kết quả hiển thị các bản ghi từ một bảng trong cơ sở dữ liệu khác -

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