設定確認

  • MySQLサーバーのシステム設定値を確認
    SHOW GLOBAL VARIABLES LIKE 'performance_schema%';

SQLモード

  • MySQLでは指定された値のままレコードに格納できなくても、なるべくエラーにならないように処理を続けるようになっている
  • sql_modeをstrictモードで設定すれば、このようなMySQL特有の振る舞いを変更して他のSQLデータベースのように使える

現在のモードを確認

select @@global.sql_mode;
+-------------------------------------------------------------------------------------------------------------------------------------------+
| @@global.sql_mode                                                                                                                         |
+-------------------------------------------------------------------------------------------------------------------------------------------+
| ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+-------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

モード

ONLY_FULL_GROUP_BY

  • GROUP BY句で名前が指定されていない非集約カラムを、選択リスト、HAVING条件、またはORDERリストが参照するクエリを拒否

STRICT_TRANS_TABLES

  • 値を指定した通りにトランザクションテーブルに挿入できない場合、ステートメントを中止
  • 非トランザクションテーブルの場合、値が単一行ステートメントで発生するか、複数行ステートメントの先頭行で発生した場合、ステートメントを中止

NO_ZERO_IN_DATE

  • 年の部分はゼロではないが、月または日の部分が0である日付がこのモードの制御対象になる
  • '0000-00-00'は制御対象ではない。'0000-00-00'についてはNO_ZERO_DATEモードを使う。
  • このモードおよび厳密モード1が有効な場合、IGNOREが指定されている場合を除き、ゼロ部分を含む日付は許可されず、エラーになる。
  • INSERT IGNOREおよびUPDATE IGNOREの場合、ゼロ部分を含む日付は'0000-00-00'として挿入され、警告になる。

NO_ZERO_DATE

  • このモードと厳密モードが有効な場合、IGNOREが指定されている場合を除き、'0000-00-00'は許可されず、エラーになる。
  • INSERT IGNOREおよびUPDATE IGNOREの場合は、'0000-00-00'が許可され、警告になる

ERROR_FOR_DIVISION_BY_ZERO

  • このモードおよび厳密モードが有効な場合、ゼロによる除算はエラーになる
  • INSERT IGNOREおよびUPDATE IGNOREの場合は、ゼロによる除算はNULLを挿入し、警告になる

NO_AUTO_CREATE_USER

  • 認証情報が指定される場合を除き、他の方法で実行される場合は、GRANTステートメントで新規ユーザーを自動的に作成しない

NO_ENGINE_SUBSTITUTION

  • CREATE TABLEまたはALTER TABLEなどのステートメントが無効またはコンパイルされていないストレージエンジンを指定した時、デフォルトのストレージエンジンの自動置換を制御する。
  • このモードが有効な場合、目的のエンジンが利用できない場合はエラーになり、テーブルは作成または変更されない。

TRADITIONAL

  • 以下モードを指定したのと同等
    • STRICT_TRANS_TABLES
    • STRICT_ALL_TABLES
    • NO_ZERO_IN_DATE
    • NO_ZERO_DATE
    • ERROR_FOR_DIVISION_BY_ZERO
    • NO_AUTO_CREATE_USER
    • NO_ENGINE_SUBSTITUTION

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2022-06-22 (水) 13:06:30 (673d)