[英]How to reset AUTO_INCREMENT for specific composite key (MyISAM)?
我喜歡為表設置內部 AUTO_INCREMENT 計數器,它使用 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_INCREMENT=...
使用幾乎為零。
如果您使用的是 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
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.