如何在两个具有不同MySQL数据库列的表之间移动数据?

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

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

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

  • 示例

  • 测试

让我们在“测试”数据库中创建第一个表

<发送>

mysql> use test;
Database changed
mysql> create table send
   -> (
   -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> Name varchar(20)
   -> );

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

mysql> insert into send(Name) values('John');
mysql> insert into send(Name) values('Carol');

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

mysql> select *from send;

以下是输出

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

现在,在“示例”数据库中创建第二个表

<接收>

mysql> use sample;
Database changed
mysql> create table receive
   -> (
   -> UserId int,
   -> UserName varchar(20)
   -> );

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

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

mysql> insert into sample.receive(UserId,UserName)
   -> select Id,Name from test.send;
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)