Я только что внедрил аналогичный идентификатор в одну из баз данных моей организации.Ключ должен поддерживать два отдельных столбца, один для года и один для идентификатора.Вы также можете использовать эти два столбца в качестве первичного ключа для обеспечения целостности, хотя я обнаружил, что проще использовать отдельный столбец автонумерации в качестве первичного ключа.
Вы можете использовать запрос, подобный следующему, чтобы добавитьзаписи последовательно для каждого года.Он использует функцию Nz
для проверки на нулевые значения (т. Е. Новый год) и по умолчанию имеет значение Id, равное 0, а затем добавляет 1.
INSERT INTO YOUR_TABLE (Year, Id)
SELECT New_Year, New_Id
FROM (SELECT 2019 as New_Year, Nz(Max(Id),0)+1 as New_Id FROM YOUR_TABLE WHERE Year = 2019);
Вам потребуется использовать функцию Format
в запросах SELECT иформы / отчеты для отображения в формате ####-####
, поскольку начальные нули не сохраняются и не нужны в необработанных данных.
Ниже приведен пример запроса SELECT, который печатает составные идентификаторы
SELECT Format([Year],"0000") & "-" & Format([Id],"0000") AS Composite_Id
FROM YOUR_TABLE;