2013-08-01 109 views
0

代碼:創建表 - 錯誤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$$ 

錯誤:

#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 '"login" (
    "IdUser" int(11) NOT NULL AUTO_INCREMENT, 
    "username" varchar(45)' at line 1 

#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 '"photos" ("IdPhoto" int(11) NOT NULL AUTO_INCREMENT, "title" varchar(100)' at line 1 

任何想法?我是全新的,所以任何幫助將非常感激。 。

回答

0

你應該使用反引號`沒有雙引號「 像

 CREATE TABLE `login` (

同爲其他列

1

使用反引號像這樣',而不是雙引號整個

,例如:

`IdUser` int(11) NOT NULL AUTO_INCREMENT, 
1

您可以在id中使用雙引號只有在啓用了ANSI_QUOTES SQL模式的情況下才啓用。

SET sql_mode='ANSI_QUOTES'; 

這裏是SQLFiddle演示

否則只是使用反勾或者什麼都沒有,如果你的標識符不是一個保留字列表。

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 
; 

這裏是SQLFiddle演示

進一步閱讀Schema Object Names