2017-12-17 14 views
0
  1. DBはSQL Server用に設計されています。当時、すべてのテーブル名は大文字と小文字が混在していたたとえば、UserTasksです。
  2. 何百ものストアドプロシージャがこれらのテーブルに書き込まれ、それらのストアドプロシージャでは大文字と小文字の混在テーブル名が使用されます。
  3. DBはMySQL(Windows版)に移行され、その処理中にテーブル名は自動的にすべて小文字に変換されましたが、ストアドプロシージャ内のコードはテーブル名の変更なしにMySQL形式に変換されました。
  4. Ubuntuに移行したばかりで、MySQLはストアドプロシージャのSQL文で使用されているテーブルをMySQLで見つけることができないため、すべてが機能しなくなりました。

簡単な方法はありますか?私は難しい方法を知っています。これら550個のストアドプロシージャのそれぞれを開き、テーブル名を1つずつ小文字に変更します。UbuntuのMySQL大文字と小文字の区別の問題

答えて

1

あなたはそれが環境のすべてのタイプで動作しますので、テーブル名のhttps://dev.mysql.com/doc/refman/5.7/en/identifier-case-sensitivity.html

大文字小文字の区別は、MySQLの上の複雑な話です読んでください:大文字と小文字が区別され、大文字と小文字を区別しないでのWindows、UnixおよびLinux、また、ハイブリッドのようなMacOSもあります。

lower_case_table_namesオプションを使用することができます。私は自分でそのオプションを使用しないので、私は確信が持てません.Windowsを使用せず、MySQLストアドプロシージャを使用することはめったにないため、プロシージャコードとのやりとりがどうなるか分かりません。

幸運を祈る!

+0

ありがとうございました。それは動作するようです。ストアドプロシージャであっても実際のテーブルの列名の場合と一致しない場合もあります。大文字と小文字が区別されることもあります。 –

関連する問題