system
阿久津 勇太

2021.6.4システム開発 

システムエンジニア

阿久津 勇太

2021年8月1日「マリンロード」は「インソースマーケティングデザイン」へ社名を変更いたしました

STRICT_TRANS_TABLESにご注意を

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

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

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

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

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

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

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

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

現役ウェブ解析士が教えるWebサイトの読み解き方 イメージ
システム開発サービスはこちら
ページTOPへ