一张自增表里面总共有 7 条数据,删除了最后 2 条数据,重启 mysql 数据库,又插入了一条数据,此时 id 是几?

在 MySQL 中,自增列(AUTO_INCREMENT 列)的行为与表的自增值(auto-increment value)有关。这个自增值是一个内部计数器,用于生成下一个自增列的值。当你删除表中的记录时,这个自增值并不会自动减少,而是会继续递增。

假设你的表结构如下:

CREATE TABLE my_table (  
    id INT AUTO_INCREMENT PRIMARY KEY,  
    data VARCHAR(255)  
);

并且表中原本有 7 条数据,id 从 1 到 7。

  1. 删除最后 2 条数据

    DELETE FROM my_table WHERE id IN (6, 7);

  2. 此时表中剩下 5 条数据,id 为 1 到 5,但自增值(auto-increment value)仍然是 8(因为最后插入的记录的 id 是 7,自增值会加 1)。

  3. 重启 MySQL 数据库
    重启 MySQL 不会影响表的自增值。自增值会保持为 8。

  4. 插入一条新数据

    INSERT INTO my_table (data) VALUES ('some data');

  5. 此时,新插入的数据的 id 会是 8,因为自增值是 8,并且插入后会自增到 9。

  6. 所以,插入新数据后,此时的 id 是 8。

上一篇:oracle 月份加减一个月


下一篇:MVC 文件夹结构详解