【问题标题】:#1064 - You have an error in your SQL syntax; [duplicate]#1064 - 您的 SQL 语法有错误; [复制]
【发布时间】:2012-07-21 01:27:12
【问题描述】:

每当我想在 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 '( 32 ) NOT NULL DEFAULT CURRENT_TIMESTAMP , `visitor_day` SMALLINT( 2 ) NOT NUL' at line 7

代码:

CREATE TABLE `visitors_table` (
`ID` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`visitor_ip` VARCHAR( 32 ) NULL ,
`visitor_browser` VARCHAR( 255 ) NULL ,
`visitor_hour` SMALLINT( 2 ) NOT NULL DEFAULT '00',
`visitor_minute` SMALLINT( 2 ) NOT NULL DEFAULT '00',
`visitor_date` TIMESTAMP( 32 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ,
`visitor_day` SMALLINT( 2 ) NOT NULL ,
`visitor_month` SMALLINT( 2 ) NOT NULL ,
`visitor_year` SMALLINT( 4 ) NOT NULL ,
`visitor_refferer` VARCHAR( 255 ) NULL ,
`visitor_page` VARCHAR( 255 ) NULL
) TYPE = MYISAM ;

【问题讨论】:

    标签: mysql timestamp


    【解决方案1】:

    这里修复了几个错误:

    CREATE TABLE `visitors_table` (
    `ID` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
    `visitor_ip` VARCHAR( 32 ) NULL ,
    `visitor_browser` VARCHAR( 255 ) NULL ,
    `visitor_hour` SMALLINT( 2 ) NOT NULL DEFAULT '00',
    `visitor_minute` SMALLINT( 2 ) NOT NULL DEFAULT '00',
    `visitor_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    `visitor_day` SMALLINT( 2 ) NOT NULL ,
    `visitor_month` SMALLINT( 2 ) NOT NULL ,
    `visitor_year` SMALLINT( 4 ) NOT NULL ,
    `visitor_refferer` VARCHAR( 255 ) NULL ,
    `visitor_page` VARCHAR( 255 ) NULL
    ) ENGINE = MYISAM ;
    

    【讨论】:

    • 感谢修复,我会在大约 9 分钟后将此标记为答案。抱歉其他2个,只能选择一个
    • 我已将您的 NULL 值“更正”为最后的 NOT NULL。我已经把它们放回去了,但想确保你有你想要的版本。
    【解决方案2】:

    TIMESTAMP 不支持精度。直到 MySQL 5.6,也就是说,亚秒级分辨率是可能的。

    TIMESTAMP 定义中删除( 32 )

    【讨论】:

    • 我删除了 (32) 现在我得到了 #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 'TYPE = MYISAM' at line 13 Joshua Martell 给出了修复...
    【解决方案3】:

    TIMESTAMP 没有大小,您应该使用engine 而不是type

    CREATE TABLE `visitors_table` (
    `ID` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
    `visitor_ip` VARCHAR( 32 ) NULL ,
    `visitor_browser` VARCHAR( 255 ) NULL ,
    `visitor_hour` SMALLINT( 2 ) NOT NULL DEFAULT '00',
    `visitor_minute` SMALLINT( 2 ) NOT NULL DEFAULT '00',
    `visitor_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
    `visitor_day` SMALLINT( 2 ) NOT NULL ,
    `visitor_month` SMALLINT( 2 ) NOT NULL ,
    `visitor_year` SMALLINT( 4 ) NOT NULL ,
    `visitor_refferer` VARCHAR( 255 ) NULL ,
    `visitor_page` VARCHAR( 255 ) NULL
    ) engine = MYISAM ;
    

    【讨论】:

    • 谢谢,我必须将 Joshua Martell 标记为已回答,因为我首先使用了他的代码并且它有效。对不起,谢谢你
    猜你喜欢
    • 2012-05-10
    • 2016-10-30
    • 2017-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-27
    • 1970-01-01
    相关资源
    最近更新 更多