こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

初歩的な質問ですが…

今春から、SQLを勉強し始めました。

今、groupというTABLEを作ろうとしているのですが、groupの近くにsyntax errorが出てしまって困っています。
自分で考えてみたのですが、わからないので、もしおかしな点がわかるようでしたら教えてください。

CREATE TABLE group (
id int,
name char(20),
member_num int,
contract int,
PRIMARY KEY (id)
);

投稿日時 - 2009-05-13 02:58:04

QNo.4954450

暇なときに回答ください

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

「GROUP」という単語がいわゆる予約語にあたるため、エラーになっています。
GROUPというのはご存じのとおり、SELECT ... FROM ... GROUP BY ...という形でSQLの構文の中で使われますからね。
CREATE TABLE GROUP(...

CREATE TABLE [GROUP](...
とすれば、テーブルを作ることはできるはずです。

ただし、出来上がったテーブルは、SELECT * FROM GROUPではエラーとなり、SELECT * FROM [GROUP]としなくてはならず、非常に使いづらいことになります。
したがって、予約語をテーブル名やフィールド名にするのはお勧めできません。

投稿日時 - 2009-05-13 03:08:08

お礼

回答ありがとうございます。

テーブル名を変えることで、無事エラーはなくなりました。

投稿日時 - 2009-05-13 09:58:15

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

他の皆さんが指摘しているように予約語です。

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

投稿日時 - 2009-05-13 09:58:24

group が予約語なんでしょう。

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

投稿日時 - 2009-05-13 03:10:24

お礼

回答ありがとうございます。

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

投稿日時 - 2009-05-13 09:59:03

あなたにオススメの質問