【问题标题】:Mysql inserting id as 0Mysql插入id为0
【发布时间】:2014-03-19 02:57:11
【问题描述】:

我正在尝试创建修订页面,但是当我插入新修订时,它会将 id 设置为 0 而不是比最后一个条目多 1,因此我可以进行 1 个新修订,但不会更多。这是我的 mySQL 代码:

("INSERT INTO `revisions` (version, author, content, `date`) VALUES ('".$version."', '".$_SESSION['username']."', '".$content."', '".$date."')");

编辑: 哇,太尴尬了……我把表ID设置为默认0…… 架构:

CREATE TABLE `revisions` (
 `id` int(11) NOT NULL,
 `version` varchar(255) NOT NULL,
 `author` varchar(255) NOT NULL,
 `content` varchar(255) NOT NULL,
 `status` int(255) NOT NULL,
 `date` varchar(255) NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

【问题讨论】:

  • 向我们展示您的表架构。
  • 确保在您的 mySQL 表中启用了 A_I

标签: php mysql sql insert create-table


【解决方案1】:

:) 说的很清楚

id int(11) NOT NULL DEFAULT '0'

如果你不做任何值,它将被插入为默认值0,那么它将默认为0。

如果你想默认为 1,那么就使用这个

id int(11) NOT NULL DEFAULT '1'

或者如果你想要它被递增然后使用这个

id int(11) NOT NULL AUTO_INCREMENT

//每次插入新值时,这将自动增加 1,2,3,4,...值

【讨论】:

    【解决方案2】:
    CREATE TABLE `revisions` (
         `id` int(11) NOT NULL AUTO_INCREMENT,
    ......
    

    你需要设置 id 自动递增

    查看 mysql 文档:http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html

    【讨论】:

      【解决方案3】:

      您应该将 AUTO_INCREMENT 添加到您的 id 中。这样,每次插入一行时,它都会自动递增(顾名思义)。

      CREATE TABLE `revisions` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      ...
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-09-12
        • 1970-01-01
        • 2012-12-03
        • 2023-04-09
        • 1970-01-01
        • 1970-01-01
        • 2011-04-14
        • 2018-02-05
        相关资源
        最近更新 更多