2021.06.04 システム
STRICT_TRANS_TABLESにご注意を
こんにちは
エンジニアの阿久津です。
MySQLのバージョンを上げると初期設定値が変わったり
することで今まで出来ていたことがエラーとなることがあります。
今回はそのうちの一つ「SQL_MODE」の「STRICT_TRANS_TABLES」に関する
情報を記載したいと思います。
まず「STRICT_TRANS_TABLES」に関する説明ですが
以下、リファレンスの記述を転載しました。
=============================================
デフォルトでは、MySQL は無効または不適切なデータ値を許容しており、
これらをデータエントリに対する有効な値に強制的に変更します。
ただし、厳密 SQL モードを有効にして、サーバーが不良値を拒否し、
不良値が発生するステートメントを中止するという従来の方法に近い
不良値の取り扱いを選択できます。
MySQLのリファレンスより
=============================================
int型のカラムに対して空白文字(””)を保存するようなSQLについて
厳密にチェック(エラー)とするかの設定となります。
MySQL5.6以降、デフォルトでチェックがONとなっています。
上記記載の場合、バージョンアップしたことでエラーが発生します。
(そもそも間違ったSQLを書かなければどうということはないのですが・・・。)
他にもバージョンごとにデフォルト設定が違うものがありますので
バージョンアップの際は細かなところまで確認が必要ですね。