如何从表中更新/插入数据属于数据库“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
注意:这两个数据库在同一台服务器上
答案 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中,您可能需要在它们之间使用数据库链接。那是很久以前的事了; - )