mysql语法错误为什么?

时间:2014-03-28 06:45:51

标签: mysql sql

mysql查询

CREATE TABLE IF NOT EXISTS 'sadakin'.'gcm_users' (

     'id' int( 11 ) NOT NULL AUTO_INCREMENT ,
     'gcm_regid' text,
     'name' varchar( 50 ) NOT NULL ,
     'email' varchar( 255 ) NOT NULL ,
     'imei' varchar( 20 ) NOT NULL ,
     'created_at' timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ,
     PRIMARY KEY ( 'id' ) ,
     KEY 'imei' ( 'imei' ) 
    ) ENGINE = InnoDB DEFAULT CHARSET = latin1 AUTO_INCREMENT =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 ''sadakin'.'gcm_users' (

      'id' int( 11 ) NOT NULL AUTO_INCREMENT ,
          'gcm_' at line 1 

我没有发现错误。救救我!

3 个答案:

答案 0 :(得分:4)

使用反引号括起标识符。报价只是字符串:

CREATE TABLE IF NOT EXISTS `sadakin`.`gcm_users` (

         `id` int( 11 ) NOT NULL AUTO_INCREMENT ,
         `gcm_regid` text,
         `name` varchar( 50 ) NOT NULL ,
         `email` varchar( 255 ) NOT NULL ,
         `imei` varchar( 20 ) NOT NULL ,
         `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ,
         PRIMARY KEY ( `id` ) ,
         KEY `imei` ( `imei` ) 
        ) ENGINE = InnoDB DEFAULT CHARSET = latin1 AUTO_INCREMENT =1;

答案 1 :(得分:0)

列名称上不需要任何单引号

CREATE TABLE IF NOT EXISTS sadakin.gcm_users (

         id int( 11 ) NOT NULL AUTO_INCREMENT ,
         gcm_regid text,
         name varchar( 50 ) NOT NULL ,
         email varchar( 255 ) NOT NULL ,
         imei varchar( 20 ) NOT NULL ,
         created_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ,
         PRIMARY KEY ( id ) ,
         KEY imei ( imei ) 
        ) ENGINE = InnoDB DEFAULT CHARSET = latin1 AUTO_INCREMENT =1;

答案 2 :(得分:0)

您必须使用反向标记而不是单引号。引号用于字符串文字。

请检查:http://dev.mysql.com/doc/refman/5.0/en/string-literals.html

  

字符串是一个字节或字符序列,包含在其中   单引号(“'”)或双引号(“"”)

尝试:

CREATE TABLE IF NOT EXISTS `sadakin`.`gcm_users` (

     `id` INT( 11 ) NOT NULL AUTO_INCREMENT ,
     `gcm_regid` TEXT,
     `name` VARCHAR( 50 ) NOT NULL ,
     `email` VARCHAR( 255 ) NOT NULL ,
     `imei` VARCHAR( 20 ) NOT NULL ,
     `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
     PRIMARY KEY ( `id` ) ,
     KEY `imei` ( `imei` ) 
    ) ENGINE = INNODB DEFAULT CHARSET = latin1 AUTO_INCREMENT =1;