0

データベースを MySQL から PostgreSQL に移行しており、既存のアプリケーションのほとんどの SQL を書き直す必要があります。

MySQL SQL を PostgreSQL SQL に変換できるツールがあれば、これらの SQL を手動で 1 つずつ書き直すことを回避できるのではないかと考えています。

4

1 に答える 1

1

SQL は非常に複雑であるため、SQL ステートメントを「理解」し、別の方言で互換性のある同等のステートメントを生成するための汎用ツールは実用的ではありません。特に、ほとんどの SQL は、実際にはどこにも強制されていないデータに関する暗黙の仮定を行っているため、SQL ステートメントは、あるデータ セットに対しては 1 つのことを行いますが、別のデータ セットに対しては別の (そして予期しない) ことを行う可能性があります。セッション変数を使用する MySQL クエリを変換するツールをどのように作成しますか? それとも、書き込み可能な共通テーブル式を使用する PostgreSQL クエリですか? それを自動化する方法はありません。

単純な構文と方言の変更、および一般的な 1 対 1 の関数置換を自動化するツールを見つけることができるかもしれませんが、それだけです。大量の単純で非常に類似した SQL ステートメントがない限り、そのようなツールはあまり役に立ちません。非常によく似た、おそらく元々機械で生成されたステートメントが大量にある場合は、アプリケーションの設計について考えたほうがよいかもしれません。これはあまり良いアプローチではないからです。

一般的には、SQL を手動で修正した方がよいでしょう。単純なデータ型の置換を行った後かもしれません。

最初に SQL を修正して、ANSI および STRICT モードで実行されている MySQL で正しく動作するようにすると、非常に役立ちます。そのため、本当にばかげた MySQL 主義のいくつかをキャッチし、コードを MySQL の引用規則の代わりに ANSI 引用に変更できます。など

于 2013-04-01T07:24:19.197 に答える