如何移动不同 MySQL 数据库中列数据的两张表之间?


为此,您需要使用 INSERT SELECT 语句。语法如下

INSERT INTO
yourDatabaseName1.yourTableName1(yourColumnName1,yourColumnName2,....N)
SELECT yourColumnName1,yourColumnName2,....N FROM
yourdatabaseName2.yourTableName2;

在这里,我使用以下两个数据库

  • sample
  • test

让我们在 “test” 数据库中创建第一张表

<send>

mysql> use test;
Database changed
mysql> create table send
   -> (
   -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> Name varchar(20)
   -> );
Query OK, 0 rows affected (1.19 sec)

使用 insert 命令在第一张表中插入一些记录。查询如下所示

mysql> insert into send(Name) values('John');
Query OK, 1 row affected (0.20 sec)
mysql> insert into send(Name) values('Carol');
Query OK, 1 row affected (0.40 sec)

使用 select 语句显示表中的所有记录

mysql> select *from send;

以下是输出

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

现在,在 “sample” 数据库中创建第二张表

<receive>

mysql> use sample;
Database changed
mysql> create table receive
   -> (
   -> UserId int,
   -> UserName varchar(20)
   -> );
Query OK, 0 rows affected (0.59 sec)

如您在上面看到的那样,我们在第二个表 “receive” 中没有记录。

现在,让我们在不同数据库中移动包含不同列的 2 个表之间的数据。查询如下所示

mysql> insert into sample.receive(UserId,UserName)
   -> select Id,Name from test.send;
Query OK, 2 rows affected (0.21 sec)
Records: 2 Duplicates: 0 Warnings: 0

显示表 sample.receive 中的所有记录。查询如下所示。

mysql> select *from receive;

以下是显示输出,显示我们已将日期从一个表成功移至另一个不同数据库中的表

+--------+----------+
| UserId | UserName |
+--------+----------+
| 1      | John     |
| 2      | Carol    |
+--------+----------+
2 rows in set (0.00 sec)

更新时间:2019 年 7 月 30 日

528 次观看

开启你的 职业生涯

完成课程,获得认证

开始
广告