如何在 MySQL 中將一行資料從一個表移動到另一個表?


您可以使用 INSERT INTO SELECT 語句將一行資料從一個表移動到另一個表。

語法如下:

insert into yourDestinationTableName select *from yourOriginalTable where someCondition

為了理解上述語法,讓我們建立一個表。以下是建立表的查詢:

mysql> create table StudentTable
   −> (
      −> Id int,
      −> Name varchar(100)
   −> );
Query OK, 0 rows affected (0.65 sec)

現在,我將建立一個第二個表。查詢如下:

mysql> create table Employee
   −> (
      −> EmployeeId int
      −> ,
      −> EmployeeName varchar(100)
   −> );
Query OK, 0 rows affected (0.54 sec)

在 Employee 表中插入一些記錄。插入記錄的查詢如下:

mysql> insert into Employee values(1,'Carol');
Query OK, 1 row affected (0.18 sec)

mysql> insert into Employee values(2,'John');
Query OK, 1 row affected (0.16 sec)

mysql> insert into Employee values(3,'Johnson');
Query OK, 1 row affected (0.11 sec)

現在,您可以使用 SELECT 語句顯示 Employee 表中的所有記錄。查詢如下:

mysql> select *from Employee;

以下是輸出:

+------------+--------------+
| EmployeeId | EmployeeName |
+------------+--------------+
|          1 | Carol        |
|          2 | John         |
|          3 | Johnson      |
+------------+--------------+
3 rows in set (0.00 sec)

實現我們在開頭討論的語法以將行移動到另一個表中。以下查詢將 Employee 表中的行移動到 StudentTable 表中:

mysql> insert into StudentTable select *from Employee where EmployeeId = 3 and EmployeeName = 'Johnson';
Query OK, 1 row affected (0.17 sec)
Records: 1 Duplicates: 0 Warnings: 0

現在,您可以檢查該行是否存在於第二個表“StudentTable”中。查詢如下:

mysql> select *from StudentTable;

以下是輸出:

+------+---------+
| Id   |    Name |
+------+---------+
| 3    | Johnson |
+------+---------+
1 row in set (0.00 sec)

檢視上面的示例輸出,我們已將一行資料從一個表移動到另一個表。要移動所有行,您只需要刪除“where”條件。查詢如下:

mysql> insert into StudentTable select *from Employee;
Query OK, 3 rows affected (0.15 sec)
Records: 3 Duplicates: 0 Warnings: 0

該查詢顯示 StudentTable 中所有更新的記錄:

mysql> select *from StudentTable;

以下是輸出:

+------+---------+
| Id   | Name    |
+------+---------+
| 1    | Carol   |
| 2    | John    |
| 3    | Johnson |
+------+---------+
3 rows in set (0.00 sec)

更新於: 2020年6月29日

4K+ 瀏覽量

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.