我有一个数据库和一组表。场景是,两个不同的部门使用完全相同的表结构和服务器代码/前端,但部门的数据完全不同。
最好的方法是拥有两个不同的数据库,具有确切的结构和不同的数据。
但是,如果我尝试在1个数据库中实现这个,那么它可能吗?我无法更改表名,因为它需要更改查询表的整个代码。有没有办法在单个数据库中创建子文件夹/目录?
我搜索过,可能没有。但也许有人可以提出建议吗?
答案 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 stop
或 service mysqld stop
或 service mysql stop