2009-11-24 111 views
-1

我正在使用MYSQL 5.1。当我去创建一个表时,它抛出错误这样,MYSQL - 无法创建表格

查询:

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) 
+0

你为什么要添加UNIQUE KEY XPKPAYMENT_STATUS如果你已经宣布它作为主键 – DKSRathore 2009-11-24 06:18:46

+0

哪里复选框接受。我想不明白。 – Srinivasan 2009-11-24 07:03:55

回答

3

DESC是一个保留字,与反引号它环绕..

`DESC` 
+0

是的,这是错误,我把这个词改名为描述后,它工作正常。 谢谢.. – Srinivasan 2009-11-24 06:23:24

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) 
) 

虽然我建议重命名列,以避免进一步的麻烦。