重置自动递增列

Resetting the auto incrementing column

CREATE TABLE employee
(
    eId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    eName1 VARCHAR(30),
    eName2 VARCHAR(30),
    eType VARCHAR(30),
    phoneNumber VARCHAR(12),
    eSalary INT,
    birthday DATE,
    imageFile VARCHAR(100)
);
SELECT*FROM employee; 
ALTER TABLE employee AUTO_INCREMENT =1;

当我执行 ALTER TABLE employee AUTO_INCREMENT =1; 时,它根本不起作用:( 它说 0 行受影响。

这是table中的数据。

ALTER TABLE ... AUTO_INCREMENT = N 只能将自增计数器值更改为大于当前最大值的值。

对于您的情况,您可以将其设置为 4 或 4+。

来源: https://dev.mysql.com/doc/refman/8.0/en/innodb-auto-increment-handling.html

这将重置您的 eId,从 1:

UPDATE `tbl1`, (
  SELECT @loop := 0
  FROM
   `tbl1`
  ) t
SET `eId` = (@loop := @loop + 1)

如果要更改起始eId,只需修改@loop := 0中的0