-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 回答