2014年4月11日金曜日

MySQL:予約語と同じテーブル名はバッククォートで囲む

MySQL でテーブル名やカラム名が MySQL の予約語と同じ場合、
そのまま書くとエラーとなって実行することができない。

例えば group という名前のテーブルからデータを読み出す場合、
そのまま書くと文法エラーになる。
SELECT * FROM group;

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'grom group' at line 1 

MySQL の予約語ではなく識別子であることを示す場合は
`` で囲む必要がある。
SELECT * FROM `group`;

テーブル名やカラム名には予約事被らないようにプリフィックスを付加するか、
識別子は全て `` で囲むようにすれば回避できる。

0 件のコメント:

コメントを投稿