MySQL从具有相同表模式的不同数据库查看

her*_*tp. 5 mysql view

我现在面临的情况是,我必须从同一主机上的不同数据库创建 MySQL 视图。创建数据的团队每年使用不同的数据库(例如 sales_2014、sales_2015)等。

所有数据库都具有相同的表和几乎相同的架构。只有一些列不同,但我只需要那些相同的列,所以我不必关心那些不同的列。

对于我的项目,我需要将这些数据放在一个视图或表中。做这个的最好方式是什么?我应该为每个数据库创建一个视图,并通过不同数据库上的单个视图连接所有视图,我应该只对不同数据库中的所有表使用一个大视图,还是应该使用与视图不同的东西?

Ric*_*mes 5

只需引用您想要的任何数据库即可。请注意“db.tbl”语法:

CREATE VIEW ...
    AS
    SELECT ...
        FROM sales_2014.blah AS x
        JOIN sales_2015.blah AS y ON ...
Run Code Online (Sandbox Code Playgroud)

同样,您可以使用UNION ALL.

CREATE OR REPLACE VIEW
    AS all_sales
        SELECT * FROM 2014.sales
    UNION ALL
        SELECT * FROM 2015.sales;
Run Code Online (Sandbox Code Playgroud)

为了“理智”,您可能需要创建一个新数据库来存储 VIEW。您可以将其称为sales_all