4

如何将属于数据库“A”的表中的数据更新/插入属于数据库“B”的表?

例如,我有一个名为 ips 的表,属于数据库“A”:

CREATE TABLE `ips` (
 `id` int(10) unsigned NOT NULL DEFAULT '0',
 `begin_ip_num` int(11) unsigned DEFAULT NULL,
 `end_ip_num` int(11) unsigned DEFAULT NULL,
 `iso` varchar(3) DEFAULT NULL,
 `country` varchar(150) DEFAULT NULL
) ENGINE=InnoDB

假设我有第二个表国家属于数据库“B”:

CREATE TABLE `country` (
 `countryid` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
 `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
 `ordering` smallint(5) unsigned NOT NULL DEFAULT '0',
 `iso` char(2) NOT NULL,
 PRIMARY KEY (`countryid`)
) ENGINE=InnoDB

注意:两个数据库在同一台服务器上

4

2 回答 2

2

您必须在表名前加上数据库/模式名称。像这样的东西:

INSERT INTO `database B`.`country` (columns) 
    SELECT columns FROM `database A`.`ips`;

当然,您必须根据您的需要替换columns为所需的列名和/或表达式。

于 2013-08-29T11:38:57.640 回答
0

在 SQLServer 中是这样的;

插入 x select * from otherdatabase.owner.table

可以扩展以选择列等。

在 Oracle 中,您可能需要它们之间的数据库链接。那对我来说是很久以前的事了;-)

于 2013-08-29T11:38:43.857 回答