这是我关于stackoverflow的第一个问题。我通常可以通过搜索找到问题的答案,但这次我没有运气。
我在MySQL中有几个数据库。它们被铁轨应用中的几个红宝石使用。这些应用程序的版本并不完全相同。这是我们的自定义软件的相同版本,而不是rails等。因此,我们的应用程序中的核心表和列存在一些差异。
我希望能够根据列名称是否为所有数据库说foo或bar来更改一行中的一列。因此,foo将是用于存储早期版本信息的列名称,而bar是更新后的列名称。我想更改id 1的信息,具体取决于列名是foo还是bar。例如:
IF database.table.foo EXISTS
THEN UPDATE database.table.foo WHERE id='1' to blahblah
ELSE IF database.table.bar EXISTS
THEN UPDATE database.table.bar WHERE id='1' to blahblah
ELSE
Skip database
END
我对MySQL的经验有限。现在我正在运行一个BASH脚本来构建一个基于我们软件版本在MySQL服务器上执行的.sql文件。这有几个漏洞,随着我们的应用程序发生变化,这些差异将变得更加麻烦。
所以在这种情况下,存储过程是最好的选择还是还有其他我完全遗漏的东西?
谢谢你的帮助! : - )