BLOGスタッフブログ

STRICT_TRANS_TABLESにご注意を

こんにちは
エンジニアの阿久津です。

MySQLのバージョンを上げると初期設定値が変わったり
することで今まで出来ていたことがエラーとなることがあります。

今回はそのうちの一つ「SQL_MODE」の「STRICT_TRANS_TABLES」に関する
情報を記載したいと思います。

まず「STRICT_TRANS_TABLES」に関する説明ですが
以下、リファレンスの記述を転載しました。

=============================================
デフォルトでは、MySQL は無効または不適切なデータ値を許容しており、
これらをデータエントリに対する有効な値に強制的に変更します。
ただし、厳密 SQL モードを有効にして、サーバーが不良値を拒否し、
不良値が発生するステートメントを中止するという従来の方法に近い
不良値の取り扱いを選択できます。
MySQLのリファレンスより
=============================================

int型のカラムに対して空白文字(””)を保存するようなSQLについて
厳密にチェック(エラー)とするかの設定となります。

MySQL5.6以降、デフォルトでチェックがONとなっています。
上記記載の場合、バージョンアップしたことでエラーが発生します。
(そもそも間違ったSQLを書かなければどうということはないのですが・・・。)

他にもバージョンごとにデフォルト設定が違うものがありますので
バージョンアップの際は細かなところまで確認が必要ですね。

阿久津 勇太が書いた他の記事

見積もり・ご依頼など、
お気軽にご相談ください

本サイトはユーザーエクスペリエンスの向上などを目的に、Cookieを使用しています。
右記のバナーで「同意する」をクリックする、または本サイトを利用することにより、
お客様は弊社のCookieポリシーに同意したことになります。

同意します