こちらは、
の詳細調査結果公開用リポジトリです。
INFORMATION_SCHEMA
・パフォーマンススキーマ・sys
スキーマの各テーブル・ビュー
- 調査結果にはないが、主キー以外のインデックスがないテーブルからのデータ取得時、
ORDER BY
が指定されないケースで複数行結果が返る場合のソート順が不定に- 本来これは「不定」が正しいし、MySQL 5.6 のマニュアルにも「不定」と書いてあった
- 以前は主キー順でデータ取得できたが、MySQL 8.0 では本当に「不定」になった
- パラメータグループでデフォルトどおり
explicit_defaults_for_timestamp
に1
(有効)を指定した状態で、- MySQL Connector/J のプリペアドステートメントを使って
NOT NULL
かつDEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
のTIMESTAMP
・DATETIME
列に対してnull
でUPDATE
したときの挙動が、以下のように変化するケースがある- Aurora MySQL v1・MySQL Connector/J 5.1 の組み合わせ:
UPDATE
時のタイムスタンプで更新 - Aurora MySQL v3・MySQL Connector/J 8.0 の組み合わせ:「
NOTNULL
列にnull
でUPDATE
することはできない」旨のエラーが発生
- Aurora MySQL v1・MySQL Connector/J 5.1 の組み合わせ:
- 同様の事象が発生した場合は
null
ではなくNOW()
などでUPDATE
する形に SQL 文(プリペアドステートメント)を書き換える
- MySQL Connector/J で
FLOAT(M,D)
・DOUBLE(M,D)
型の列をjava.math.BigDecimal
値として取り込む際に- 5.1 時代は
D
(小数点以下の桁数)を自動的にスケールとして設定する実装になっていた - 8.0 では明示的な
setScale(D)
が必要になった
- 5.1 時代は
- 日付(日時)と文字列の比較