Mysql 我可以从另一个数据库填充数据库吗
我正在尝试创建一个数据仓库 是否可以从db2中的数据填充db1中的表 比如说 企业数据库表路由Mysql 我可以从另一个数据库填充数据库吗,mysql,database,data-warehouse,Mysql,Database,Data Warehouse,我正在尝试创建一个数据仓库 是否可以从db2中的数据填充db1中的表 比如说 企业数据库表路由 CREATE TABLE ROUTE ( RouteID INTEGER(4) PRIMARY KEY, RouteName VARCHAR (50) NOT NULL, BoardingStop VARCHAR (50) NOT NULL, AlightingStop VARCHAR (50) NOT NULL ); 插入信息 INSERT INTO `ROUTE` (`RouteID`,`Rou
CREATE TABLE ROUTE (
RouteID INTEGER(4) PRIMARY KEY,
RouteName VARCHAR (50) NOT NULL,
BoardingStop VARCHAR (50) NOT NULL,
AlightingStop VARCHAR (50) NOT NULL
);
插入信息
INSERT INTO `ROUTE` (`RouteID`,`RouteName`,`BoardingStop`,`AlightingStop`)
VALUES (1,"ab","B","C")
数据仓库表dimRoute
CREATE TABLE DimROUTE (
RouteID INTEGER(4),
RouteName VARCHAR (50) NOT NULL,
BoardingStop VARCHAR (50) NOT NULL,
AlightingStop VARCHAR (50) NOT NULL,
PRIMARY KEY(RouteID)
);
使用第一个表中的数据填充上表。您只需进行两次查询即可克隆一个表(带索引和键),然后使用记录填充该表:
CREATE TABLE DimROUTE LIKE ROUTE;
INSERT DimROUTE SELECT * FROM ROUTE;
您可以使用插入到…中的
从一个表复制到另一个表中。。。选择
。请参见此处的文档:
您可以在同一MySQL实例上的不同数据库中的表之间进行复制,前提是您对这两个数据库都具有权限。只需使用databasename.tablename
语法:
INSERT INTO warehouse.DimRoute
SELECT * FROM corporate.Route;
如果数据库托管在不同的MySQL实例上,则可以使用从公司实例转储数据并导入到数据仓库实例。由于您的表在数据仓库中的名称不同,这有点棘手
您可以将数据还原为其原始表名,然后重命名该表:
$ mysqldump --host=corporate corp_dbname ROUTE > route-dump.sql
$ mysql --host=datawarehouse dw_dbname < route-dump.sql
$ mysql --host=datawarehouse -e "RENAME TABLE ROUTE TO DimROUTE" dw_dbname
$mysqldump--host=corporate corp\u dbname ROUTE>ROUTE-dump.sql
$mysql--host=datawarehouse dw_dbname
(为了简洁起见,我省略了用户/密码选项,但我建议您使用配置文件来实现这些选项。)是的,您可以。您需要的技术称为。您可以使用许多工具,这些工具将帮助您自动化和组织流程。或者您可以推出自己的解决方案
报表数据库以这种方式由其他数据库馈送是很常见的。有什么原因不能复制表吗?