SQLインポートがデータベースの姿をより多く保ちます
- 名前のない外部キーがサーバーの付ける名前になります。
CONSTRAINT name なしで書いた外部キーに、データベースが付ける名前(orders_ibfk_1 など)が付き、そのインデックスも列名に従います。以前は ERDism が fk_orders_customers_… のような名前を付けていました。 - 止まったインポートが、止めた文を指します。 ファイルをインポートできないとき、メッセージが無関係なテーブルではなく、インポートを止めた文(
TRUNCATE TABLE … など)を指すようになりました。 - ダンプ内の問い合わせ文でインポートが止まらなくなりました。
SELECT、SHOW、DESCRIBE、EXPLAIN、HELP 文は読み飛ばし、ほかの読み飛ばした文と一緒に表示します。 - CHECK … NOT ENFORCED を保ちます。 以前は拒否されていた CHECK が書いたとおりに取り込まれ、対応していないターゲットへ公開すると理由とともに拒否されます。
- INVISIBLE・ZEROFILL 列が属性を保ちます。 どちらも生成された SQL から消えていました。MySQL 8.0 プロジェクトでは、 SQL エディターが ZEROFILL は非推奨だと知らせます。
- MariaDB が列の CHECK 名を保ちます。 列に書いた
CHECK がその列に残るので、MariaDB は CONSTRAINT_1 ではなく列名で名前を付けます。 - TIMESTAMP 列が正しい NULL 規則になります。 MySQL 5.7 と以前の MariaDB プロジェクトで、
NULL・NOT NULL なしで書いた TIMESTAMP 列が、そのサーバーが作るとおり NOT NULL として取り込まれます。 - ゼロ日付のデフォルトが厳格なサーバーでも実行できます。 列のデフォルトが
'0000-00-00' のような日付なら、生成された SQL が必要なテーブルの前後で SQL_MODE を緩め、あとで元に戻します。 - ビューがバージョンコメントを保ちます。 mysqldump ファイルのビューが
/*!50001 … */ コメントを保ちます。 - ダウンロードした SQL が、何をチェックしたかを示します。 ダウンロードした DDL ファイルの先頭行が
verified ではなく design-checked … design issues になりました。ERDism は設計をチェックするだけで、SQL をデータベースサーバーで実行しません。
←リリースノート一覧