在MySQL中将行从一个表移到另一个表?

您可以借助INSERT INTO SELECT语句将行从一个表移动到另一个表。

语法如下-

insert into yourDestinationTableName select *from yourOriginalTable where someCondition

了解以上语法。让我们创建一个表。以下是创建表的查询-

mysql> create table StudentTable

   −> (

      −> Id int,

      −> Name varchar(100)

   −> );

现在,我将创建第二个表。查询如下-

mysql> create table Employee

   −> (

      −> EmployeeId int

      −> ,

      −> EmployeeName varchar(100)

   −> );

在表Employee中插入一些记录。插入记录的查询如下-

mysql> insert into Employee values(1,'Carol');

mysql> insert into Employee values(2,'John');

mysql> insert into Employee values(3,'Johnson');

现在,您可以借助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';

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;

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)

以上是 在MySQL中将行从一个表移到另一个表? 的全部内容, 来源链接: utcz.com/z/351396.html

回到顶部