【问题标题】:AUTO_INCREMENT in two placesAUTO_INCREMENT 在两个地方
【发布时间】:2012-12-30 20:54:28
【问题描述】:

我遇到了以下 sql 语句,您可以看到 AUTO_INCREMENT 位于两个不同的位置。你能解释一下不同之处吗,我知道第一个是自动递增 id。但是第二个是什么意思呢?

CREATE TABLE `categories`(
    `id` int(11) NOT NULL AUTO_INCREMENT,
     `name` varchar(100) NOT NULL,
     `image_path` varchar(200) NOT NULL,
      PRIMARY KEY(`id`)
) ENGINE = InnoDB;

第二个陈述。

CREATE TABLE `categories`(
     `id` int(11) NOT NULL AUTO_INCREMENT,
     `name` varchar(100) NOT NULL,
     `image_path` varchar(200) NOT NULL,
     PRIMARY KEY(`id`)
) ENGINE = InnoDB  DEFAULT CHARSET = latin1 AUTO_INCREMENT=4 ;

我引用了http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html。但我找不到任何东西。

【问题讨论】:

    标签: php mysql sql auto-increment


    【解决方案1】:

    第二条语句中的AUTO_INCREMENT 将id 中使用的第一个数字设置为4。

    `id` int(11) NOT NULL AUTO_INCREMENT
    

    设置列名并告诉数据库在添加新行时自动增加数字。

    ) ENGINE = InnoDB  DEFAULT CHARSET = latin1 AUTO_INCREMENT=4 ;
    

    设置用于表格的引擎、字符集以及它应该从 4 开始编号,而不是 1。

    CREATE TABLE 更详细地解释了这一点。

    • AUTO_INCREMENT

    表的初始 AUTO_INCREMENT 值。在 MySQL 5.0 中,这 适用于 MyISAM 和 MEMORY 表。 InnoDB 也支持它 MySQL 5.0.3.

    【讨论】:

    • 所以,在第二个语句中,id 是 auto_incrementing。如果还有另一个 int 变量,它也会增加吗?
    • 一张表只能有一个 auto_increment 列:dev.mysql.com/doc/refman/5.0/en/create-table.html " 注意每个表只能有一个 AUTO_INCREMENT 列,必须有索引,不能有 DEFAULT 值。"
    • 非常感谢您的解释。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多