MySQL在同一个数据库中有多个同名的表

时间:2017-05-02 23:07:02

标签: mysql

我有一个数据库和一组表。场景是,两个不同的部门使用完全相同的表结构和服务器代码/前端,但部门的数据完全不同。

最好的方法是拥有两个不同的数据库,具有确切的结构和不同的数据。

但是,如果我尝试在1个数据库中实现这个,那么它可能吗?我无法更改表名,因为它需要更改查询表的整个代码。有没有办法在单个数据库中创建子文件夹/目录?

我搜索过,可能没有。但也许有人可以提出建议吗?

2 个答案:

答案 0 :(得分:1)

了解Identifier Qualifiers。只有在不同的数据库中才能使用同名表,并且使用数据库名作为限定符。

SELECT * FROM db1.sametablename;
SELECT * FROM db2.sametablename;

您可以在同一查询中跨数据库连接表:

SELECT * FROM db1.sametablename JOIN db2.sametablename;

您甚至可以跨数据库声明外键约束:

ALTER TABLE db1.sametablename ADD FOREIGN KEY (col1) 
  REFERENCES db2.sametablename (col1);

数据库基本上是表和其他对象的命名空间。

答案 1 :(得分:0)

停止Mysql Server并重新启动它,这必须解决问题。 Windows

<块引用>

mysqladmin -u root -p shutdown

Linux

<块引用>

/etc/init.d/mysqld stopservice mysqld stopservice mysql stop