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

时间:2013-08-29 11:36:36

标签: mysql sql sql-update

如何从表中更新/插入数据属于数据库“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

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

2 个答案:

答案 0 :(得分:2)

您必须使用DB /模式名称为表名添加前缀。这样的事情:

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

当然,您必须将columns替换为与您的需求相对应的必需列名和/或表达式。

答案 1 :(得分:0)

在SQLServer中,它就像;

从otherdatabase.owner.table

插入x select *

可以扩展为选择列等。

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