【问题标题】:Two SCHEMA of the same DATABASE MySQL同一个DATABASE MySQL的两个SCHEMA
【发布时间】:2014-10-27 00:02:57
【问题描述】:

我对 MySQL 比较陌生,我很喜欢它。
我想要做的是在同一个数据库上有两个不同的 SCHEMAS。 --实际上我对这种情况下的术语感到困惑--所以请允许我为您描绘整个画面。

我有一个数据库(比如财务),我在上面运行一个(风险数学)模型。所以我将数据库加载到我的计算机中并使用另一个程序对其进行操作。
为了测试模型,我需要加载之前的备份(比如上个月的)所述数据库并像生活在过去一样运行模型,然后使用本月的数据对其进行测试。

据我了解,此备份替换了我已经在使用的数据库。这对我来说并不是最优的,因为那时我必须重新加载同一数据库的当前版本。理想情况下,我希望将它们都存储在我的计算机中并从一个切换到另一个,而不是每次都重新加载。

如果有人能给我一些指导,我将不胜感激。 祝你有美好的一天。

【问题讨论】:

  • RENAME DATABASE。只需拥有“live”和“devel”并在它们之间重命名。您的应用始终使用相同的名称,您只需通过适当的重命名来更改实际恰好是哪个数据库。
  • 你可能想看看时间点架构——但那东西超出了我的薪酬等级。
  • @MarcB 我可以在什么级别——而且我应该——区分它们(模式、数据库)?我在客户端(Workbench)中创建了两个连接,但随后注意到在一个连接中加载一个备份会修改另一个连接中的数据。
  • @Strawberry 谢谢你的建议。由于这个程序相对较新,研究数据库的架构似乎也超出了我的薪酬水平。

标签: mysql database schema mysql-workbench


【解决方案1】:

首先:databaseschema 相同。两者都是可互换的(在 MySQL 中)。模式是数据库服务器中的顶级结构,包含属于它的所有其他数据库对象。 MySQL 中还有目录的概念(作为真正的顶级结构),但到目前为止从未使用过。

创建到同一服务器的 2 个连接时(您正在创建到服务器的连接,而不是数据库),您将访问相同的对象并因此访问相同的数据,无论您选择哪个连接(取决于所使用用户的权限)用于连接)。所以,这对你的情况没有帮助。

您可以拥有任意数量的模式,例如,如建议的那样,开发模式和生产模式。它们都可以存储在同一个数据库服务器中,并且可以包含完全相同的内容。使用您的转储,您可以创建另一个模式进行测试。 MySQL Workbench 允许将其还原到与转储文件中指定的不同的架构中。

现在,为了在当前数据和旧数据之间切换,您有 2 个选项:

  1. 重命名您的架构,以便您目前要使用的架构具有您的应用程序中使用的标准名称。
  2. 使您的应用程序可配置为通过设置、命令行参数等接受数据库/模式名称。

第二个显然更灵活,尤其是当您开始拥有更多历史数据(在更多模式中)时。

【讨论】:

  • 这是为我做的。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-20
  • 1970-01-01
  • 2013-04-27
  • 2023-03-23
  • 2010-11-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多