• ベストアンサー

初歩的な質問ですが…

今春から、SQLを勉強し始めました。 今、groupというTABLEを作ろうとしているのですが、groupの近くにsyntax errorが出てしまって困っています。 自分で考えてみたのですが、わからないので、もしおかしな点がわかるようでしたら教えてください。 CREATE TABLE group ( id int, name char(20), member_num int, contract int, PRIMARY KEY (id) );

質問者が選んだベストアンサー

  • ベストアンサー
  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.1

「GROUP」という単語がいわゆる予約語にあたるため、エラーになっています。 GROUPというのはご存じのとおり、SELECT ... FROM ... GROUP BY ...という形でSQLの構文の中で使われますからね。 CREATE TABLE GROUP(... を CREATE TABLE [GROUP](... とすれば、テーブルを作ることはできるはずです。 ただし、出来上がったテーブルは、SELECT * FROM GROUPではエラーとなり、SELECT * FROM [GROUP]としなくてはならず、非常に使いづらいことになります。 したがって、予約語をテーブル名やフィールド名にするのはお勧めできません。

rennnyo
質問者

お礼

回答ありがとうございます。 テーブル名を変えることで、無事エラーはなくなりました。

その他の回答 (2)

  • 3rd_001
  • ベストアンサー率66% (115/174)
回答No.3

他の皆さんが指摘しているように予約語です。 予約語は以下のものがありますので、注意して作成しましょう。 http://msdn.microsoft.com/ja-jp/library/ms189822.aspx http://msdn.microsoft.com/ja-jp/library/ms189822(SQL.90).aspx

回答No.2

group が予約語なんでしょう。 変数名やテーブル名に普通の英単語を使うのは、あんまり良くありません。i_group とか、grp_a とか、何らかの命名規則を定めて命名した方が良いです。

rennnyo
質問者

お礼

回答ありがとうございます。 おかげで、エラーはなくなりました。アドバイスもありがとうございます。

関連するQ&A