如何在 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)
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP