0

编码:

            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

有任何想法吗?我对此很陌生,所以非常感谢任何帮助。

4

3 回答 3

1

在整个过程中使用像这样的反引号 ` 而不是双引号

例如:

`IdUser` int(11) NOT NULL AUTO_INCREMENT,
于 2013-08-01T22:29:21.913 回答
1

仅当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演示

进一步阅读模式对象名称

于 2013-08-01T22:29:55.133 回答
0

你应该像这样使用反引号`而不是双引号"。

     CREATE TABLE `login` (

其他列也一样。

于 2013-08-01T22:29:09.703 回答