作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我喜欢为表设置内部 AUTO_INCRMENT 计数器,它使用 MyISAM 和复合主键 - 但仅适用于特定的 PK 组合。如果我使用
ALTER TABLE tablename AUTO_INCREMENT = 1;
它将为所有复合 PK 组合设置内部计数器,这是我不想要的。
我需要类似的东西
ALTER TABLE tablename AUTO_INCREMENT = 1 WHERE prefix = 5 AND suffix = X;
这样不行。是否有可能仅更改 MyISAM 表中特定 PK 组合的计数器?
表:
CREATE TABLE `ENG__faktury_counter`
(
`year` int(10) NOT NULL,
`prefix` varchar(10) NOT NULL,
`DIC` varchar(50) NOT NULL,
`id_counter` int(15) NOT NULL AUTO_INCREMENT ,
`created` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`year`,`prefix`,`DIC`,`id_counter`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
最佳答案
ALTER TABLE ... AUTO_INCRMENT=... 的使用率几乎为零
。
如果您正在使用 MyISAM 并拥有
foo ...
id ... AUTO_INCREMENT
PRIMARY KEY(foo, id) -- where the _2nd_ column is auto-inc
那就没什么可做的了
foo id
--- --
cat 1
cat 2
dog 1
bird 1
cat 3
bird 2
bird 3
dog 2
无论插入行的顺序如何。
如果这不能解决您的问题,请通过示例和SHOW CREATE TABLE
来增强它。
关于mysql - 如何重置特定复合键(MyISAM)的AUTO_INCRMENT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54092627/
我是一名优秀的程序员,十分优秀!