重置自动递增列
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
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