SQL Server から MySQL への変換 - AWS Schema Conversion Tool

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

SQL Server から MySQL への変換

SQL Server スキーマを MySQL に移行する際は以下の点を考慮してください。

  • MySQL は MERGE ステートメントをサポートしていません。ただし、AWS SCT は INSERT ON DUPLICATE KEY 句と UPDATE FROM および DELETE FROM ステートメントを使用して、変換中に MERGE ステートメントをエミュレートできます。

    INSERT ON DUPLICATE KEY を使用して正しくエミュレーションするために、一意の制約またはプライマリキーがターゲット MySQL データベースで存在することを確認してください。

  • GOTO ステートメントとラベルを使用して、ステートメントを実行する順序を変更できます。GOTO ステートメントに続くすべての Transact-SQL ステートメントはスキップされ、ラベルで処理が継続されます。GOTO ステートメントとラベルはプロシージャ、バッチ、またはステートメントブロックの任意の場所で使用できます。GOTO ステートメントをネストすることもできます。

    MySQL は GOTO ステートメントを使用しません。AWS SCT が GOTO ステートメントが含まれるコードを変換する場合、ステートメントは BEGIN...END または LOOP...END LOOP ステートメントを使用するように変換されます。次の表は、AWS SCT が GOTO ステートメントを変換する方法の一例です。

    SQL Server ステートメント MySQL ステートメント
    BEGIN .... statement1; .... GOTO label1; statement2; .... label1: Statement3; .... END
    BEGIN label1: BEGIN .... statement1; .... LEAVE label1; statement2; .... END; Statement3; .... END
    BEGIN .... statement1; .... label1: statement2; .... GOTO label1; statement3; .... statement4; .... END
    BEGIN .... statement1; .... label1: LOOP statement2; .... ITERATE label1; LEAVE label1; END LOOP; statement3; .... statement4; .... END
    BEGIN .... statement1; .... label1: statement2; .... statement3; .... statement4; .... END
    BEGIN .... statement1; .... label1: BEGIN statement2; .... statement3; .... statement4; .... END; END
  • MySQL は複数ステートメントのテーブル値関数をサポートしていません。AWS SCT では、一時テーブルを作成し、これらの一時テーブルを使用するようにステートメントを書き換えることで、変換中にテーブル値関数をシミュレートします。