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

Chèn từ một bảng có cấu trúc khác sang một bảng khác trong MySQL?

Đối với điều này, hãy sử dụng câu lệnh INSERT INTO SELECT. Đầu tiên chúng ta hãy tạo một bảng -

mysql> create table DemoTable1
   -> (
   -> PersonId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> PersonName varchar(20),
   -> PersonAge int,
   -> PersonCountryName varchar(20)
   -> );
Query OK, 0 rows affected (0.55 sec)

Chèn một số bản ghi vào bảng bằng lệnh chèn -

mysql> insert into DemoTable1(PersonName,PersonAge,PersonCountryName) values('Chris Brown',24,'US');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable1(PersonName,PersonAge,PersonCountryName) values('John Doe',26,'UK');
Query OK, 1 row affected (0.23 sec)
mysql> insert into DemoTable1(PersonName,PersonAge,PersonCountryName) values('David Miller',23,'AUS');
Query OK, 1 row affected (0.10 sec)

Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -

mysql> select * from DemoTable1;

Điều này sẽ tạo ra kết quả sau -

+----------+--------------+-----------+-------------------+
| PersonId | PersonName   | PersonAge | PersonCountryName |
+----------+--------------+-----------+-------------------+
|        1 | Chris Brown  |        24 | US                |
|        2 | John Doe     |        26 | UK                |
|        3 | David Miller |        23 | AUS               |
+----------+--------------+-----------+-------------------+
3 rows in set (0.00 sec)

Đây là truy vấn để tạo bảng thứ hai -

mysql> create table DemoTable2
   -> (
   -> EmployeeId int,
   -> EmployeeFullName varchar(30),
   -> EmployeeAge int,
   -> EmployeeCountryName varchar(20),
   -> EmployeeSalary int default 20000
   -> );
Query OK, 0 rows affected (0.52 sec)

Đây là truy vấn để chèn từ một bảng có cấu trúc khác sang bảng khác -

mysql> insert into DemoTable2(EmployeeId,EmployeeFullName,EmployeeAge,EmployeeCountryName) select PersonId,PersonName,PersonAge,PersonCountryName from DemoTable1;
Query OK, 3 rows affected (0.26 sec)
Records: 3  Duplicates: 0  Warnings: 0

Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -

mysql> select * from DemoTable1;

Điều này sẽ tạo ra kết quả sau -

+------------+------------------+-------------+---------------------+----------------+
| EmployeeId | EmployeeFullName | EmployeeAge | EmployeeCountryName | EmployeeSalary |
+------------+------------------+-------------+---------------------+----------------+
|          1 | Chris Brown      |          24 | US                  |          20000 |
|          2 | John Doe         |          26 | UK                  |          20000 |
|          3 | David Miller     |          23 | AUS                 |          20000 |
+------------+------------------+-------------+---------------------+----------------+
3 rows in set (0.00 sec)