コラム
通常同じテーブル名のテーブルを作成しようとするとエラーになります。
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`などで同様の拡張が用意されています。
この記事は参考になりましたか?
- この記事の著者
-
梶山隆輔(カジヤマリュウスケ)
日本オラクル MySQL Global Business Unit Asia Pacific & Japan担当 MySQLソリューション・エンジニアリング・ディレクターオラクル社において、MySQLのお客様環境への導入支援や製品の技術解説を担当するセールスコンサルタントチームのアジア太平洋地域リーダー。多国籍なM...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア