- ベストアンサー
初歩的な質問ですが…
今春から、SQLを勉強し始めました。 今、groupというTABLEを作ろうとしているのですが、groupの近くにsyntax errorが出てしまって困っています。 自分で考えてみたのですが、わからないので、もしおかしな点がわかるようでしたら教えてください。 CREATE TABLE group ( id int, name char(20), member_num int, contract int, PRIMARY KEY (id) );
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
「GROUP」という単語がいわゆる予約語にあたるため、エラーになっています。 GROUPというのはご存じのとおり、SELECT ... FROM ... GROUP BY ...という形でSQLの構文の中で使われますからね。 CREATE TABLE GROUP(... を CREATE TABLE [GROUP](... とすれば、テーブルを作ることはできるはずです。 ただし、出来上がったテーブルは、SELECT * FROM GROUPではエラーとなり、SELECT * FROM [GROUP]としなくてはならず、非常に使いづらいことになります。 したがって、予約語をテーブル名やフィールド名にするのはお勧めできません。
その他の回答 (2)
- 3rd_001
- ベストアンサー率66% (115/174)
他の皆さんが指摘しているように予約語です。 予約語は以下のものがありますので、注意して作成しましょう。 http://msdn.microsoft.com/ja-jp/library/ms189822.aspx http://msdn.microsoft.com/ja-jp/library/ms189822(SQL.90).aspx
- somalia_shinji
- ベストアンサー率18% (27/143)
group が予約語なんでしょう。 変数名やテーブル名に普通の英単語を使うのは、あんまり良くありません。i_group とか、grp_a とか、何らかの命名規則を定めて命名した方が良いです。
お礼
回答ありがとうございます。 おかげで、エラーはなくなりました。アドバイスもありがとうございます。
お礼
回答ありがとうございます。 テーブル名を変えることで、無事エラーはなくなりました。