【问题标题】:MySQL Create Table Error?? Version problems maybe?MySQL创建表错误??可能是版本问题?
【发布时间】:2011-04-15 03:53:22
【问题描述】:

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

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

我也尝试过这样的事情:

'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)(不删除它,由于懒惰)..我该如何解决?

【问题讨论】:

  • 我们能否看到您尝试运行的完整查询,虽然该错误非常有用,但我们仍需要查看查询的其余部分;
  • 你说代码是动态的,这是否意味着 assets 和 assetsid 是示例名称,如果是,那些示例实际上是错误的,还是你只是编造了一个?
  • assetid 直到 curlocid 被预定义。其他是用户输入的值。我给出的例子是产生错误的例子。我在 mysql_error 旁边输出查询..

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


【解决方案1】:

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

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

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

我在 MySQL Server 5.5 中运行良好

【讨论】:

  • 我之前尝试过没有这些标记。我已经更新了 sql 查询的问题。
  • 仅仅因为纠正一个错误并不能修复程序,并不意味着它不是一个错误。这只是意味着它不是你唯一的错误。
【解决方案2】:

好的,所以我不确定这里发生了什么,但是我复制并粘贴了您的代码并得到了同样的错误,所以我逐行复制仍然在它应该有的地方中断,所以我必须逐行输入摆弄了一下,但我得到了它,除了“条件”可能是保留字但我缩短了它这是我得到的

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)
);

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

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

      default-storage-engine=MyISAM
      

      【讨论】:

        猜你喜欢
        • 2011-04-10
        • 2018-03-25
        • 2018-09-01
        • 2011-03-02
        • 1970-01-01
        • 2016-05-21
        • 2018-10-13
        • 2013-12-15
        • 1970-01-01
        相关资源
        最近更新 更多