2020年7月10日のブックマーク (2件)

  • MySQL 5.7.8以降で古いアプリが動かない場合の対処(sql_mode) - Qiita

    MySQL 5.7からはデフォルトの設定が色々変わっているので、5.6で動いていたアプリケーションが動かないケースがある。 主な理由はデフォルトのsql_modeの違い 5.7からはデフォルトでONLY_FULL_GROUP_BYやNO_ZERO_IN_DATEとかが設定されている。 ONLY_FULL_GROUP_BYが設定されていると、postgreSQLみたいにorder by句とgroup by句で同じカラムが指定されていないとエラーになる。 NO_ZERO_IN_DATEが設定されていると、careate_date = '0000-00-00 00:00:00'みたいなのでエラーになる。 5.7系でもバージョンによって細かくデフォルトのsql_modeが違うので注意が必要。 詳しくは公式のドキュメントを参照 <= 5.7.4 NO_ENGINE_SUBSTITUTION >= 5

    MySQL 5.7.8以降で古いアプリが動かない場合の対処(sql_mode) - Qiita
    yuu-sss
    yuu-sss 2020/07/10
    5.7系でsql_modeのデフォルト値が過去のバージョンと異なることがある。そうなるとWebアプリによっては動作しない。
  • MySQLのsql_mode正しく設定されていますか? – エンジニアリング 入りました!

    MySQLのこんな事象に遭遇したことはありませんか? ・MySQLのint型カラムに 空文字 ” をインサートすると 0 になる。 ・MySQLのdatetime型カラムに 空文字 ” をインサートすると 0000-00-00 00:00:00 になる。 はい。おそらく低いバージョンのMySQLで、かつ sql_mode が未設定(デフォルトのまま)です。 今後MySQLのバージョンが上がった際にデフォルトの sql_mode が変わって、それにともないMySQLの挙動が変わる可能性があります。 結構危険ですので、MySQLsql_modeの確認と設定を行いましょう。 ● MySQLsql_modeを確認する sql_mode を確認するには次のクエリーを投げます。 SHOW VARIABLES LIKE "%sql_mode%"; また、グローバルスコープの設定を確認するにはこちら

    yuu-sss
    yuu-sss 2020/07/10
    5.6と5.7のsql_modeの違い。参考になる。