MySQL の warnings をすぐに表示させる方法

  mysql コマンドを直接たたいているときに、warning と表示されることがあります。
  例えば、次のような場合です。

mysql> CREATE TABLE test (id int) TYPE=InnoDB;
Query OK, 0 rows affected, 1 warning (0.03 sec)

  この場合 warning が 1 つ発生しています。どういった warning が発生しているかを確認するには、SHOW WARNINGS をしてみるとわかります。

mysql> SHOW WARNINGS\G
*************************** 1. row ***************************
  Level: Warning
   Code: 1287
Message: 'TYPE=storage_engine' is deprecated; use 'ENGINE=storage_engine' instead
1 row in set (0.02 sec)

  Message がそれにあたります。ちなみに、SHOW WARNINGS は MySQL 4.1.0 から導入されています。

- MySQL AB :: MySQL 4.1 リファレンスマニュアル :: 4.6.8.9 SHOW WARNINGS | ERRORS
  http://dev.mysql.com/doc/refman/4.1/ja/show-warnings.html

  さて、本題ですが、warning を見るためにいちいち SHOW WARNINGS をタイプするのは面倒です。
  そこで、--show-warnings オプションを紹介します。マニュアルによると以下のように説明されています。

警告が存在する場合、各ステートメント後に表示させます。このオプションはインタラクティブとバッチモードにのみ対応しています。

  ただし、このオプションは MySQL 5.0.x から用意されているようです (手元にある 5.0.37 では実装されていました)。

  使い方は、いたって簡単で --show-warnings オプションをつけるだけです。

$ mysql --show-warnings -uroot -p test

  上記と同じように warning が表示される SQL を入力しています。

mysql> CREATE TABLE test (id int) TYPE=InnoDB;
Query OK, 0 rows affected, 1 warning (0.01 sec)

Warning (Code 1287): 'TYPE=storage_engine' is deprecated; use 'ENGINE=storage_engine' instead

  見てのとおり、警告がすぐに表示されました。

  もちろん、~/.my.cnf などに書いても問題ありません。

[mysql]
show-warngins



- MySQL AB :: MySQL 5.1 リファレンスマニュアル :: 7.7.1 mysql オプション
  http://dev.mysql.com/doc/refman/5.1/ja/mysql-command-options.html#id268974 ...