在UNIQUE KEY附近的CREATE TABLE中的MySQL查询语法错误

时间:2013-09-09 11:21:34

标签: mysql sql

我在MySQL中执行了此查询,但它显示a syntax error near Unique key statement。有人可以帮我清除错误吗?

      CREATE TABLE IF NOT EXISTS `friends` (
      `Id` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `providerId` int(10) unsigned NOT NULL DEFAULT '0',
      `requestId` int(10) unsigned NOT NULL DEFAULT '0',
      `status` binary(1) NOT NULL DEFAULT '0', PRIMARY KEY (`Id`),

       UNIQUE KEY `Index_3` (`providerId`,`requestId`),
       KEY `Index_2` (`providerId`,`requestId`,`status`))
       ENGINE=InnoDB  DEFAULT CHARSET=latin1 
       COMMENT='providerId is the Id of the users who wish to be friend with' AUTO_INCREMENT=7 ;

错误消息如下:

错误1064(42000):您的SQL语法出错;查看与MySQL服务器版本对应的手册,以便在''Id'附近使用正确的语法),UNIQUE KEY Index_2(providerId,requestId),KEY Index_3(providerId,requ'在第1行

3 个答案:

答案 0 :(得分:2)

最后没有,

`status` binary(1) NOT NULL DEFAULT '0', PRIMARY KEY (`Id`),

答案 1 :(得分:0)

尝试将关键字PRIMARY KEY ('Id')放在... AUTO_INCREMENT之后的第一列中,如下所示:

CREATE TABLE IF NOT EXISTS `friends` (
       `Id` int(10) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
      `providerId` int(10) unsigned NOT NULL DEFAULT '0',
      `requestId` int(10) unsigned NOT NULL DEFAULT '0',
      `status` binary(1) NOT NULL DEFAULT '0',

       UNIQUE KEY `Index_3` (`providerId`,`requestId`),
       KEY `Index_2` (`providerId`,`requestId`,`status`))
       ENGINE=InnoDB  DEFAULT CHARSET=latin1 
       COMMENT='providerId is the Id of the users who wish to be friend with' AUTO_INCREMENT=7 ;

答案 2 :(得分:-1)

INSERT INTO Carttable  (id unique,date,title,supplier,item_price,item_qty,author,author_image,image,image2,image3,categories,categories_id,main_category_id,tags,post_data,views,status,item_status,discount,offer_price,qty_1,price_1,offer_price_1,qty_2,price_2,offer_price_2,qty_3,price_3,offer_price_3,mcid) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)