0

MySQL コマンドがあります。

use hsm_thilisar_cz; CREATE TABLE GODS (
      id INT NOT NULL AUTO _INCREMENT ,
      name TEXT ,
      range BOOL ,
      free BOOL ,
      lore LONGTEXT ,
      PRIMARY KEY ( id )
);

しかし、それを実行すると、エラーが発生します: (チェコ語の MySQL サーバーのため、チェコ語から翻訳されました)

#1064-Your syntax is strange near `range BOOL ,free BOOL ,lore LONGTEXT ,
PRIMARY KEY ( id ));` on line 4

私が間違っていることはありますか?回答ありがとうございます。 ^解決済み^

しかし、別の問題...

CREATE TABLE GUIDE ( 
   id INT NOT NULL AUTO_INCREMENT,
   godId INT NOT NULL,
   userId INT NOT NULL,
   item1 INT,
   item2 INT,
   item3 INT,
   item4 INT,
   item5 INT,
   item6 INT,
   itemA1 INT,
   itemA2 INT,
   itemC1 INT,
   itemC2 INT,
   notes LONGTEXT,
   mode TEXT,
   guideTimeDate TIMESTAMP,
   PRIMARY KEY(id);

18行目のエラー

#1064-Your syntax is strange near '' on line 18.

この問題を解決するにはどうすればよいですか。MySQL が教えてくれませんが、構文がどこで間違っているのか... この問題の解決に時間を割いていただきありがとうございます。

4

2 に答える 2

2

RANGEは予約済みのキーワードで、たまたま列の名前になっています。構文エラーを回避するために、バックティックを使用して列名をエスケープする必要があります。元、

use hsm_thilisar_cz; 
CREATE TABLE GODS 
(
      id INT NOT NULL AUTO _INCREMENT ,
      name TEXT ,
      `range` BOOL ,          -- wrap with backticks
      free BOOL ,
      lore LONGTEXT ,
      PRIMARY KEY ( id )
);

今後同じエラーが再発しないように、予約済みキーワード リストにない列名を変更したいと思います。

use hsm_thilisar_cz; 
CREATE TABLE GODS 
(
      id INT NOT NULL AUTO _INCREMENT ,
      name TEXT ,
      gods_range BOOL ,         
      free BOOL ,
      lore LONGTEXT ,
      PRIMARY KEY ( id )
);
于 2013-04-24T07:29:26.657 に答える
0

「範囲」はMySqlのキーワードです。使用できません。私はこれを試してみましたが、うまくいきました:

CREATE TABLE GODS (
      id INT NOT NULL AUTO_INCREMENT ,
      name TEXT ,
      myrange BOOL ,
      free BOOL ,
      lore LONGTEXT ,
      PRIMARY KEY ( id )
);
于 2013-04-24T07:31:45.003 に答える