Как сбросить AUTO_INCREMENT для конкретного составного ключа (MyISAM)? - PullRequest
0 голосов
/ 08 января 2019

Мне нравится устанавливать внутренний счетчик AUTO_INCREMENT для таблицы, которая использует MyISAM и составной первичный ключ - но только для конкретной комбинации PK. Если я использую

ALTER TABLE tablename AUTO_INCREMENT = 1;

Он установит внутренний счетчик для всех составных комбинаций ПК, которые я не хочу.

Мне нужно что-то вроде

ALTER TABLE tablename AUTO_INCREMENT = 1 WHERE prefix = 5 AND sufix = X;

Это не работает таким образом. Есть ли возможность изменить только счетчик для конкретной комбинации ПК в таблице MyISAM?

Таблица:

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 

1 Ответ

0 голосов
/ 09 января 2019

Практически нулевое использование для 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.

...