こちらは、
の詳細調査結果公開用リポジトリです。
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 時代は
- 日付(日時)と文字列の比較