0

postgresql sql-query を mysql に変換しようとしています。翻訳機の使用。

これはpostgresのクエリです:

comment_date_gmt timestamp without time zone DEFAULT timezone('gmt'::text, now()) NOT NULL,

に変換されます

comment_date_gmt timestamp DEFAULT timezone('gmt',

閉じていない括弧は、すべてが正しくないことを示しています。このクエリがどのように見えるべきかを理解しようとしています。助言がありますか?

4

1 に答える 1

1

信頼できる唯一の SQL クエリ方言コンバーターは人間の脳です。

ツールは、データ型の名前変更などの基本に役立ちますが、最初に標準型を使用してクエリを作成するだけで、そのようなことの多くを回避できます。

クエリ変数を使用する MySQL クエリを PostgreSQL クエリに変換したり、PostgreSQL (SQL 標準) の再帰的な共通テーブル式を MySQL が理解できるものに変換したりするのは非常に困難です。この 2 つは、まったく異なるストアド プロシージャ言語、異なる組み込み関数、およびあらゆる種類のものを持っています。array_aggunnestなど ... そのほとんどは、MySQL 変数を使用してクエリに変換する必要があります。row_number次に、 、leadlag、および のような実行中のウィンドウとして使用される集計などのウィンドウ関数がありますsum(blah) OVER (...)。汎用コンバーターは、実際にジョブを実行するためにクエリを「理解」する必要があります。

コンバーター ツールを特定していないため、指定された問題に対する特定の回答は実際には不可能です。

推測では、PostgreSQL クエリを次のように変更すると:

comment_date_gmt timestamp without time zone DEFAULT (current_timestamp AT TIME ZONE 'utc') NOT NULL,

これは、PostgreSQL およびその他の準拠データベースで理解される標準的な言い回しです。

于 2013-07-02T02:35:22.963 に答える