2013-03-13 2 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/ creating-spatial-indexes.html 엔진을 변경하십시오. – Meherzad

답변

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가 응답을 위해 Ty를 사용하지만 다음과 같은 오류가 발생합니다. 오류 1464 : 사용 된 테이블 유형이 SPATIAL 인덱스를 지원하지 않습니다. – Daanvn

+0

@Daanvn : 설명서 @ http : // dev.mysql.com/doc/refman/5.0/en/creating-spatial-indexes.html에서는 SPATIAL 인덱스에 "MyISAM"엔진을 사용해야한다고 말합니다. 데이터베이스 엔진을 변경하십시오. – ankurtr

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

1

innoDb 엔진에서 이번에는 (5.6) 공간 인덱스를 사용할 수 없습니다. 대신 MyISam 엔진을 사용하십시오. 그러나 5.0.6 이후 InnoDb에서 공간 데이터 유형을 사용할 수 있습니다.