0

我从 mysql_error() 得到以下信息:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在 -->'assets' ('assetid' INT UNSIGNED NOT NULL AUTO_INCREMENT , PRIMARY KEY('assetid'<-- 在第 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

4 回答 4

1

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

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

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

我在 MySQL Server 5.5 中运行良好

于 2011-04-15T04:02:08.697 回答
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)
);
于 2011-04-15T05:05:00.957 回答
0

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

于 2011-04-15T03:57:53.953 回答
0

这个问题很老,但我只想告诉答案如何解决这个问题。万一有人偶然发现它。在这种情况下,它是使用的默认引擎。直到现在我才注意到,我使用的服务器(Z-WAMP)将 INNODB 配置为默认引擎。在我将其更改为 MyISAM(mysql 的默认引擎)后,一切正常!但是,感谢帮助我的人..

在此文件 --> my.cnf 中,更改此行:

default-storage-engine=MyISAM
于 2011-04-18T02:39:31.517 回答