Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL-我应该使用存储过程还是其他什么?_Mysql_Ruby On Rails - Fatal编程技术网

MySQL-我应该使用存储过程还是其他什么?

MySQL-我应该使用存储过程还是其他什么?,mysql,ruby-on-rails,Mysql,Ruby On Rails,这是我关于stackoverflow的第一个问题。我通常可以通过搜索找到问题的答案,但这次我没有这么幸运 我有几个MySQL数据库。它们被几个RubyonRails应用程序使用。这些应用程序并非都是相同的版本。这是我们定制软件的同一版本,而不是rails等。因此,我们应用程序中的核心表和列存在一些差异 我希望能够根据所有数据库的列名是foo还是bar来更改一行中的一列。所以foo将是存储早期版本信息的列名,bar是更新后的列名。我想根据列名是foo还是bar来更改id 1的信息。例如: IF d

这是我关于stackoverflow的第一个问题。我通常可以通过搜索找到问题的答案,但这次我没有这么幸运

我有几个MySQL数据库。它们被几个RubyonRails应用程序使用。这些应用程序并非都是相同的版本。这是我们定制软件的同一版本,而不是rails等。因此,我们应用程序中的核心表和列存在一些差异

我希望能够根据所有数据库的列名是foo还是bar来更改一行中的一列。所以foo将是存储早期版本信息的列名,bar是更新后的列名。我想根据列名是foo还是bar来更改id 1的信息。例如:

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脚本来构建一个.sql文件,该文件基于我们的软件版本在MySQL服务器上执行。这其中有几个漏洞,随着应用程序的更改,这些差异将变得更加麻烦

所以在这种情况下,存储过程是最好的选择,还是我完全缺少了其他东西


谢谢你的帮助!:-)

安装rake任务怎么样?@BroiSatse我想在不必更新应用程序的每个实例的情况下更改它。有几百个,需要很多时间。如果我只是改变一列,这将花费更少的时间和资源。