MySQL创建表错误??版本问题可能吗?

时间:2011-04-15 03:53:23

标签: php mysql sql mysql-error-1064 mysql-error-1005

我从mysql_error()获得以下内容:

  

您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以便使用附近的正确语法 - >'assets'('assetid'INT UNSIGNED NOT NULL AUTO_INCREMENT,PRIMARY KEY('assetid'< - at line 1

我也尝试过这样的事情:

'assets' ('assetid' INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,

......但没有运气。 mysql版本是5.0.7。

编辑:

实际上,我在没有(')之前尝试过它。代码是动态的,但这些是示例:

CREATE TABLE 'assets' (
   'assetid' INT UNSIGNED NOT NULL AUTO_INCREMENT, 
    PRIMARY KEY('assetid'),
    'rfid' VARCHAR( 128 ) ,
    'createddate' DATE ,
    'modifieddate' DATE ,
    'curlocid' INT( 11 ) ,
    'type' VARCHAR( 128 ) ,
    'brand' VARCHAR( 128 ) ,
    'name' VARCHAR( 128 ) ,
    'condition' VARCHAR( 128 ) 
);

编辑2:

刚才我尝试用后面的刻度(`)更改所有单引号(')..发生了其他错误..

  

无法创建表'mydb.assets'(错误号:121)

这是好还是坏?

编辑3:

我尝试使用不同的表名创建它并猜猜是什么?有用!天哪,为什么我不能创建表名'资产'?是因为之前的操作有一些剩菜吗?如果是这样我怎么清理它?如果我说通过删除它的文件来删除它的文件??(frm,myd,myi)(不要丢弃它,因为懒惰)...如何修复它?

4 个答案:

答案 0 :(得分:1)

查看所有代码会很有帮助。

根据我所看到的情况,您需要消除所有这些滴答声。这应该有效:

create table assets ( 
      assetid  int unsigned not null auto_increment primary key 
);

我在MySQL Server 5.5中运行得很好

答案 1 :(得分:1)

好吧所以我不确定这里有什么好处,但我复制并粘贴你的代码并得到了同样的错误,所以我逐行复制仍然在它应该有的地方打破所以我逐行输入它必须稍微改了一下,但我得到了它,除了“条件”,这可能是一个保留的词,但我缩短它继承人我得到了

create table assets ( 
     assetid  int unsigned not null auto_increment,
    primary key(assetid),
    rfid varchar(128),
    createddate DATE,
    modifieddate DATE,
    curlocid INT(11),
    type varchar(128),
    brand varchar(128),
    name varchar(128),
    cond varchar(128)
);

答案 2 :(得分:0)

我认为在引用表名或列名时需要使用后标记(`)而不是单引号(')。

答案 3 :(得分:0)

这个问题已经过时但我只想告诉你如何解决这个问题的答案。如果有人偶然发现它..在这种情况下,它是使用的默认ENGINE。直到现在我还没注意到,我正在使用的服务器(Z-WAMP)将INNODB配置为默认引擎。在我将其更改为MyISAM(这是mysql的默认引擎)之后,一切都运行得很好!但是,感谢帮助我的人......

在此文件中 - > my.cnf,改变这一行:

default-storage-engine=MyISAM