如何在不同 MySQL 数据库中具有列的两个表之间移动数据?
mysqlmysqli database
为此,您需要使用 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)
使用插入命令在第一个表中插入一些记录。查询如下
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"中没有记录。
现在让我们在不同数据库中具有不同列的两个表之间移动数据。查询如下
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 accept;
以下是输出,显示我们已成功将日期从一个表移动到不同数据库中的另一个表
+--------+----------+ | UserId | UserName | +--------+----------+ | 1 | John | | 2 | Carol | +--------+----------+ 2 rows in set (0.00 sec)