mysql跨库插入数据
时间: 2023-07-25 20:04:24 浏览: 174
在 MySQL 中跨库插入数据可以通过以下两种方式实现:
1. 使用 INSERT INTO SELECT 语句
可以使用 INSERT INTO SELECT 语句从一个表中选择数据并将其插入到另一个表中,例如:
```
INSERT INTO db2.table2 (column1, column2, column3)
SELECT column1, column2, column3 FROM db1.table1;
```
上述语句将从 db1.table1 中选择 column1、column2 和 column3 的值,并将它们插入到 db2.table2 中。
2. 使用 FEDERATED 存储引擎
FEDERATED 存储引擎允许在不同的 MySQL 服务器之间进行查询和更新操作。可以使用 FEDERATED 存储引擎将数据从一个 MySQL 数据库插入到另一个 MySQL 数据库中,例如:
1. 在目标数据库服务器上创建一个 FEDERATED 表:
```
CREATE TABLE `table2_fed` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`column1` varchar(255) DEFAULT NULL,
`column2` varchar(255) DEFAULT NULL,
`column3` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
)
ENGINE=FEDERATED
DEFAULT CHARSET=utf8
CONNECTION='mysql://user:password@source_database_server/db1/table1';
```
2. 在源数据库服务器上创建一个表:
```
CREATE TABLE `table1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`column1` varchar(255) DEFAULT NULL,
`column2` varchar(255) DEFAULT NULL,
`column3` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
)
ENGINE=InnoDB
DEFAULT CHARSET=utf8;
```
3. 在源数据库服务器上插入数据:
```
INSERT INTO db1.table1 (column1, column2, column3)
VALUES ('value1', 'value2', 'value3');
```
4. 在目标数据库服务器上查询数据:
```
SELECT * FROM db2.table2_fed;
```
上述语句将从源数据库服务器中的 db1.table1 中选择数据并将其插入到目标数据库服务器中的 db2.table2_fed 中。
阅读全文