автоматическая генерация ключей является сложной темой, вкратце - база данных может выбирать новые ключи при наличии специальной таблицы, зарезервированной для генерирования ключей. В этой таблице должен быть список неиспользуемых ключей в одном столбце (столбец приращения) и возрастающий список чисел, начиная с 1, во втором столбце (столбце идентификаторов). Когда базе данных потребуется новый ключ, она извлечет его из строки с номером 1 в столбце идентификаторов и затем получит новый ключ, готовый для следующего раза.
В ходе выбора уникального ключа база данных находит строку со значением 1 в столбце идентификаторов. В столбце приращения в этой строке расположен следующий доступный ключ. База данных применяет этот ключ и обновляет таблицу, подготавливая следующий уникальный ключ.
| Столбец идентификаторов | Столбец приращения |
|---|---|
| 3 | 78 |
| 4 | 3 |
| 1 | 65 |
| 2 | 12 |
После выборки уникального ключа таблица обновляется для следующей операции создания ключа. При необходимости база данных может одновременно загрузить несколько ключей, выбрав несколько строк из столбца приращения.
Таким образом, для работы функции автоматического создания ключей необходима таблица, состоящая из двух столбцов - столбца первичного ключа (столбца идентификаторов), а также столбца для хранения следующего доступного ключа. Для инициализации такой таблицы достаточно одной записи, в которой в столбце идентификаторов будет указано значение 1, а в столбце приращения - первый доступный ключ. После настройки описанной таблицы функция автоматического создания ключей готова к работе.