-1

MYSQL 5.1 を使用しています。テーブルを作成しようとすると、次のようなエラーがスローされます。

クエリ:

CREATE TABLE IF NOT EXISTS payment_status (
  STATUS_ID int(3) unsigned NOT NULL DEFAULT '0' ,
  STATUS_NAME varchar(50) NOT NULL DEFAULT '' ,
  DESC varchar(100) ,
  PRIMARY KEY (STATUS_ID),
  UNIQUE KEY XPKPAYMENT_STATUS (STATUS_ID)
)

エラー:

Error Code : 1064
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 'DESC varchar(100) ,
  PRIMARY KEY (STATUS_ID),
  UNIQUE KEY XPKPAYMENT_STATUS (S' at line 4
(0 ms taken)
4

2 に答える 2

3

DESC予約されたMYSQLワードです(これまでに使用されたORDER BY Column1 DESC???)。

単語をバッククォート( `)で囲むと、クエリは正常に実行されます。

CREATE TABLE IF NOT EXISTS payment_status (
  STATUS_ID int(3) unsigned NOT NULL DEFAULT '0' ,
  STATUS_NAME varchar(50) NOT NULL DEFAULT '' ,
  `DESC` varchar(100) ,
  /* note the backticks on the above line */
  PRIMARY KEY (STATUS_ID),
  UNIQUE KEY XPKPAYMENT_STATUS (STATUS_ID)
)

それ以上のトラブルを避けるために、列の名前を変更することをお勧めします。

于 2009-11-24T06:19:49.190 に答える
3

DESC予約語です。バッククォートで囲みます。

`DESC`
于 2009-11-24T06:20:04.617 に答える