Я пытаюсь сгенерировать значение для столбца ProjektNummer
(Имя) на основе значения ID
(столбец первичного ключа.
Так, например, когда ID
равно 142
, тогда ProjektNummer
должно быть 19142
. 19
обозначает текущий год, а 142
- значение его ID
.
Теперь, когда год меняется, часть идентификатора в значении столбца имени проекта должна быть перезапущена с нуля, в то время как фактический идентификатор должен следовать за идентификатором и увеличиваться на 1, как обычно.
Итак, если последняя запись в 2019 году имеет ID = 164, первая запись в 2020 году должна быть:
ID: 165 ProjektNummer: 20001
.. и вторым рекордом в 2020 году будет:
ID: 166 ProjektNummer: 20002
Один из способов добиться этого - создать новое представление vMaxLastId и сохранить максимальное значение ID для соответствующего года. Эта запись будет использоваться в качестве ссылки в другом триггере.
Итак, если первая запись в 2020 году имеет ID: 165, другой триггер вычитает значение (164) для 2019 года (которое хранится в представлении) из значения ID после вставки новой записи в table1. 'с помощью второго триггера. (это нужно сделать перед тем, как вставить tho)
165-164=1
166-164=2
167-164=3
....
Когда год изменится с 2019 на 2020, максимальный идентификатор и год в 2020 будут добавлены в виде новой записи в представлении. Я реализовал это, но с этим подходом связано множество проблем.
Пожалуйста, предложите мне любой возможный способ решения этой проблемы. Я готов внести любые изменения в БД, запрос, триггер или всю концепцию.