2013-07-12 27 views
0

請幫幫我! 我導入MySQL的文件與此代碼:MySQL文件錯誤1064

delimiter $$ 

CREATE TABLE "login" (
    "IdUser" int(11) NOT NULL AUTO_INCREMENT, 
    "username" varchar(45) CHARACTER SET latin1 NOT NULL, 
    "pass" varchar(45) CHARACTER SET latin1 NOT NULL, 
    PRIMARY KEY ("IdUser") 
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8$$ 

CREATE TABLE "photos" (
    "IdPhoto" int(11) NOT NULL AUTO_INCREMENT, 
    "title" varchar(100) CHARACTER SET latin1 NOT NULL, 
    "IdUser" int(11) NOT NULL, 
    PRIMARY KEY ("IdPhoto") 
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8$$ 

....我得到以下錯誤:

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 'delimiter $$ CREATE TABLE "login" ( "IdUser" int(11) NOT NULL AUTO_INCREME' at line 1

更新:

問題解決了。謝謝你的迴應!

CREATE TABLE `login` (
    `IdUser` int(11) NOT NULL auto_increment, 
    `username` varchar(45) NOT NULL, 
    `pass` varchar(45) NOT NULL, 
    PRIMARY KEY (`IdUser`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 

CREATE TABLE `photos` (
    `IdPhoto` int(11) NOT NULL auto_increment, 
    `title` varchar(100) NOT NULL, 
    `IdUser` int(11) NOT NULL, 
    PRIMARY KEY (`IdPhoto`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ; 
+0

使用什麼客戶端程序執行這些命令? – eggyal

+0

嘗試使用單引號? – pattyd

回答

1

delimiter命令不是服務器指令;而是由某些客戶端程序(如the MySQL command line tool)識別的特定於客戶端的指令。它具有改變客戶端程序識別爲限定要發送到服務器的語句的字符的效果。

在phpMyAdmin中,可以在單擊Go之前在Delimiter文本框中更改語句分隔符。

+0

哦,好的。擺脫第一行是你說的解決方案(「delimiter $$」)? – user1526521

+0

@ user1526521:是的,但您需要通過另一種方式通知phpMyAdmin該分隔符實際上是$$;另外,請注意,更高版本的phpMyAdmin(2.11?)可以識別'delimiter'命令,因此這不再是一個問題。 – eggyal