2009-08-16 4 views
0
CREATE TABLE `pastebin` (
     `pid` int(11) NOT NULL auto_increment, 
     `poster` varchar(16) default NULL, 
     `posted` datetime default NULL, 
     `code` text, 
     `parent_pid` int(11) default '0', 
     `format` varchar(16) default NULL, 
     `codefmt` mediumtext, 
     `codecss` text, 
     `domain` varchar(255) default '', 
     `expires` DATETIME, 
     `expiry_flag` ENUM('d','m', 'f') NOT NULL DEFAULT 'm', 

     PRIMARY KEY (`pid`), 
     KEY `domain` (`domain`), 
     KEY `parent_pid`, 
     KEY `expires` 
    ); 

에 phpMyAdmin으로 데이터베이스 및 복사 - 붙여 넣기 SQL 쿼리를 만든 후 다음과 같은 에러가 발생이 MySQL 쿼리에서이 인덱스 정의에 어떤 문제가 있습니까?

#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 ' 
    KEY `expires` 
)' at line 16 

답변

1

당신은 당신의 이름 뒤에 괄호로 색인을 생성 할 열을 지정해야합니다을 색인. 당신의 정의의 하단에

:

PRIMARY KEY (`pid`), 
    KEY `domain` (`domain`), 
    KEY `parent_pid`, 
    KEY `expires` 

이 될 것입니다 : 그들은 DB에서 엔티티로

PRIMARY KEY (`pid`), 
    KEY `domain` (`domain`), 
    KEY `parent_pid` (`parent_pid`), 
    KEY `expires` (`expires`) 
+0

감사합니다. 작동하는 것처럼 보였습니다. 정말 MySQL을 배울 필요가 ... – PHLAK

1
CREATE TABLE `pastebin` (
     `pid` int(11) NOT NULL auto_increment, 
     `poster` varchar(16) default NULL, 
     `posted` datetime default NULL, 
     `code` text, 
     `parent_pid` int(11) default '0', 
     `format` varchar(16) default NULL, 
     `codefmt` mediumtext, 
     `codecss` text, 
     `domain` varchar(255) default '', 
     `expires` DATETIME, 
     `expiry_flag` ENUM('d','m', 'f') NOT NULL DEFAULT 'm', 

     PRIMARY KEY (`pid`), 
     KEY `domain` (`domain`), 
     KEY `parent_pid` (`parent_pid`), 
     KEY `expires` (`expires`) 
    ); 

인덱스는 이름이 필요합니다.