最近、MS SQL Server を MySQL に変換することに取り組んできました。その経験をまとめて共有します。同時に、これらは継続的に更新されます。また追加していただければ幸いです。 1 MySQL は enum 型と set 型をサポートしますが、SQL Server はそれらをサポートしません。
2 MySQL は nchar、nvarchar、ntext タイプをサポートしていません
3 MySQL のインクリメント ステートメントは AUTO_INCREMENT ですが、MS SQL はidentity(1,1)です。
4 MS SQL のテーブル作成ステートメントのデフォルト値は ((0)) ですが、MySQL では 2 つの括弧は使用できません。
5 MySQL はテーブルのストレージ タイプを指定する必要があります
6 MS SQL 識別子は []、[type] で、これはキーワードとは異なることを意味しますが、MySQL は ` (ボタン 1 の左側の記号) です。
7 MS SQL は現在の時刻と日付を取得する getdate() メソッドをサポートしていますが、MySQL は日付タイプと時刻タイプに分けられ、現在の日付は cur_date() 関数で、現在の完全な時刻は now() 関数です。
8 MS SQL は replace into ステートメントをサポートしていませんが、最新の sql20008 ではマージ構文もサポートされています。
9 MySQL は table1 set t1 = '', t2 = '' への挿入をサポートしていますが、MS SQL はこの方法の書き込みをサポートしていません。
10 MySQL は、tabl1 値への挿入をサポートしています (1,1)、(1,1)、(1,1)、(1,1)、(1,1)、(1,1)、(1,1)
11 MS SQL は、limit ステートメントをサポートしていません。これは、limit 0,N を置き換えるには top のみを使用でき、limit N,M を置き換えるには row_number() over() 関数のみを使用できます。
12 MySQL はテーブルの作成時にテーブルごとにストレージ エンジン タイプを指定する必要がありますが、MS SQL は 1 つのストレージ エンジンのみをサポートします
13 MySQL は、デフォルト値が現在時刻である datetime 型をサポートしていません (MS SQL では簡単に実行できます)。MySQL では、timestamp 型が使用されます。
14 このテーブルが MS SQL に存在するかどうかを確認して削除するには、次の手順を実行する必要があります。
存在する場合 (select * from dbo.sysobjects where id = object_id(N'uc_newpm') および OBJECTPROPERTY(id,N'IsUserTable')=1) ただし、MySQL のみ DROP TABLE IF EXISTS cdb_forums;
ただし、MySQL では、DROP TABLE IF EXISTS cdb_forums のみが必要です。
15 MySQL は符号なし整数をサポートしているため、符号なし整数をサポートしていない MS SQL の 2 倍の最大数を格納できます。
16 MySQL は、MS SQL の非常に便利な varchar(max) 型をサポートしていません。この型は、MS SQL の一般的なデータ ストレージと BLOB データ ストレージの両方に使用できます。
17 MySQL で非クラスター化インデックスを作成するには、テーブルの作成時にそれをキーとして指定するだけです。たとえば、MS SQL では次のようにする必要があります。
dbo.uc_protectedmembers に一意の非クラスター化インデックスindex_uc_protectedmembers_username_appid を作成します(username asc,appid asc)
18 MySQL テキスト フィールド タイプではデフォルト値が許可されません
19MySQL テーブルの合計フィールド長は 65XXX を超えません。
20 非常に表面的な違いは、MySQL のインストールが非常に簡単で、ファイル サイズがわずか 110M (非インストール バージョン) であることです。巨大な Microsoft と比較すると、インストールの進行状況は単純です。
21MySQL には、MySQL_front や公式スイートなど、より優れた管理ツールがいくつかありますが、SSMS ほど使いやすくはありません。これが MySQL の大きな欠点です。
22MySQL のストアド プロシージャは最新バージョンのみに登場しており、安定性とパフォーマンスは MS SQL ほど良くない可能性があります。
23 同じ負荷圧力の下では、MySQL は CPU とメモリの消費量が少なくなりますが、MS SQL は実際に非常にリソースを消費します。
24php には、MySQL と MS SQL に接続する同様の方法があります。MySQL 関数を MS SQL に置き換えるだけです。
25MySQL は日付、時刻、年の型をサポートします。MS SQL は 2008 年の日付と時刻のみをサポートします。