2013-03-13 132 views
0

我正在使用MySQL Workbench,並且只是在我的MySQL模型中添加了一個新表。 當我嘗試使用數據庫,會出現以下錯誤同步:同步時的SQL語法錯誤1064

Executing SQL script in server 
ERROR: Error 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 ')) 
ENGINE = InnoDB 
DEFAULT CHARACTER SET = utf8 
COLLATE = utf8_general_ci' at line 5 

CREATE TABLE IF NOT EXISTS `NAW`.`HTML` (
    `ID` INT(11) NOT NULL AUTO_INCREMENT , 
    `HTML` LONGTEXT NULL DEFAULT NULL , 
    PRIMARY KEY (`ID`) , 
    SPATIAL INDEX() 
) ENGINE = InnoDB 
    DEFAULT CHARACTER SET = utf8 
    COLLATE = utf8_general_ci 

SQL script execution finished: statements: 3 succeeded, 1 failed 

如果有人看到什麼是錯的,那就太棒了!

+0

問題是隻有myisam存儲引擎支持空間索引請參閱http://dev.mysql.com/doc/refman/5.6/en/ created-spatial-indexes.html更改引擎 – Meherzad 2013-03-13 11:15:03

回答

2

試試這個。

CREATE TABLE IF NOT EXISTS `NAW`.`HTML` ( 
    `ID` INT(11) NOT NULL AUTO_INCREMENT , 
    `HTML` LONGTEXT NULL DEFAULT NULL , 
    PRIMARY KEY (`ID`) , 
    SPATIAL INDEX (`ID`) 
) ENGINE = MyISAM 
    DEFAULT CHARACTER SET = utf8 
    COLLATE = utf8_general_ci 
+0

Ty代表響應,但是當我使用此代碼時,出現以下錯誤:錯誤1464:使用的表類型不支持SPATIAL索引 – Daanvn 2013-03-13 11:10:28

+0

@Daanvn:documentation @ http:// dev.mysql.com/doc/refman/5.0/en/creating-spatial-indexes.html表示您需要爲SPATIAL索引使用「MyISAM」引擎。嘗試更改數據庫引擎。 – ankurtr 2013-03-13 11:13:46

0

您應該從字符設置中刪除=標誌。

CREATE TABLE IF NOT EXISTS `NAW`.`HTML` (
    `ID` INT(11) NOT NULL AUTO_INCREMENT, 
    `HTML` LONGTEXT NULL DEFAULT NULL, 
    PRIMARY KEY (`ID`), 
    SPATIAL INDEX()) 
ENGINE = MyISAM 
DEFAULT CHARACTER SET 'utf8' 
COLLATE 'utf8_general_ci' 
+0

Ty爲您的快速響應,但這仍然給出相同的錯誤:< – Daanvn 2013-03-13 11:09:16

1

您現在不能在5.6版本的空間索引中使用innoDb引擎,而是使用MyISam引擎。 但是,您可以使用自5.0.6以來的InnoDb的空間數據類型