我有一个包含自动递增主键 ID 的表。如果我删除最后一行(最高 id,例如 id = 6)并插入新行,则新 id 从 7 开始。我必须更改哪个参数才能使主键从 6 开始?
CREATE TABLE animals (
id MEDIUMINT NOT NULL AUTO_INCREMENT,
name CHAR(30) NOT NULL,
PRIMARY KEY (id)
) ENGINE=MyISAM;
INSERT INTO animals (name) VALUES
('dog'),('cat'),('penguin'),
('lax'),('whale'),('ostrich');
Run Code Online (Sandbox Code Playgroud)
结果:
id 名称
1 狗
2 猫
3 企鹅
4 松懈
5 鲸鱼
6 鸵鸟
DELETE FROM animals WHERE id = 6;
INSERT INTO animals (name) VALUES
('x');
Run Code Online (Sandbox Code Playgroud)
结果:
id 名称
1 狗
2 猫
3 企鹅
4 松懈
5 鲸鱼
7 …
我有一个带有自动增量主键的表。如果我想更改一行并添加新行,我会根据引擎 MyISAM 和 InnoDB 获得不同的主键。原表是:
pk.. 动物代码 动物名称 动物类别 有效日期 到期日期
1... 1... 狗... 米... 2013-10-21.... 9999-12-31
2... 2... 青蛙... ..一...2013-10-21..... 9999-12-31
如果我使用 MyISAM 运行更新/插入代码,我会得到以下信息:
pk.. 动物代码 动物名称 动物类别 有效日期 到期日期
1... 1... 狗... 米... 2013-10-21.... 2013-10-20
2... 2... 青蛙... .. 一个... 2013-10-21..... 9999-12-31
3 ... 1... 狗..... 米... 2013-10-21..... 9999 -12-31
4... 3... 猫... 米... 2013-10-21..... 9999-12-31
并使用InnoDB:pk..animal_codeanimal_nameanimal_class effective_dateexpiry_date
1...1...dogg...m...2013-10-21....2013-10-20
2...2...青蛙..... 一个... 2013-10-21..... 9999-12-31
4 ... 1... 狗..... 米... 2013-10-21.. ... 9999-12-31
5... 3... 猫... 米... 2013-10-21..... 9999-12-31
MyISAM …