コラム
通常同じテーブル名のテーブルを作成しようとするとエラーになります。
mysql> CREATE TABLE City (id INT(8)); ERROR 1050 (42S01): Table 'city' already exists
MySQL独自の拡張として、同じ名前のテーブルが存在するテーブルを作成した場合などに、エラーではなく表示のみで知らせることができます。>
mysql> CREATE TABLE IF NOT EXISTS City (id INT(8)); Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> SHOW WARNINGS; +-------+------+-----------------------------+ | Level | Code | Message | +-------+------+-----------------------------+ | Note | 1050 | Table 'City' already exists | +-------+------+-----------------------------+ 1 row in set (0.00 sec)
ここではエラーレベルが、処理が実行できなかったErrorや処理が実行できたものの問題があったWarningではなく、Noteとなっています。他にもCREATE DATABASE文での`IF NOT EXISTS`やDROP DATABASEとDROP TABLEでの`IF EXISTS`などで同様の拡張が用意されています。