Как создать серийный номер по последней записи в MySQL - PullRequest
1 голос
/ 26 сентября 2019

Я хочу два Создайте автоматический серийный номер в качестве справочного номера. То, что я действительно ищу, это:

после того, как серийный номер будет сгенерирован, он не будет повторяться снова и выберет следующий серийный номер в соответствии с последним сгенерированнымСерийный номер в SQL, как если бы я создал серийный номер 20190926, то я не хочу генерировать этот серийный номер снова, он будет автоматически начинаться с 20190927, так как он уже сгенерирован, а также по окончании месяца серийный номер будет начинаться с 01 снова, как 201910001.данный код, но безуспешно

$id = date('Ym').str_pad($n + 1, 3, 0, STR_PAD_LEFT);

он дает мне текущий год и месяц, но каждый раз, когда открывается новая форма, он начинался с 201909001, и мне пришлось редактировать его снова

заранее спасибо

1 Ответ

0 голосов
/ 26 сентября 2019

Чтобы определить, имеете ли вы дело с первой записью данного месяца, вам нужно запросить в таблице БД серийный номер MAX() - давайте отнесем это значение к переменной php $max.

$Ym = date('Ym');
if (strpos($max, $Ym) === 0) {
    ++$max;
} else {
    $max = $Ym . '001';
}

Затем используйте новый $max в своем запросе INSERT.

... и, конечно, существует реальная проблема "состояния гонки", создающего конфликтующие серийные номера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...