簡體   English   中英

如何為特定組合鍵 (MyISAM) 重置 AUTO_INCREMENT?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM