Учитывая эту MySQL таблицу references
, где uid
- это первичный и уникальный ключ:
uid |reference_id | foreign_id
1 | 1 | 123
2 | 1 | 234
3 | 2 | 345
4 | 2 | 456
5 | 2 | 567
Я планирую использовать reference_id
как своего рода неуникальный идентификатор, который идентифицирует группа ссылок. Я также хочу увеличивать его каждый раз, когда вставляется новая группа. Поскольку это поле не является уникальным и не увеличивается автоматически для новых вставок, я должен проверить последний использованный reference_id
, увеличить его и вставить с новым найденным идентификатором. Это, конечно, может иметь большую проблему с параллелизмом, когда вставки одновременно вычисляют следующие reference_id
.
Есть ли у кого-нибудь какие-либо рекомендации по решению этой проблемы? Я думал о блокировке таблиц, но не уверен, возможно ли это, учитывая агности моего механизма БД c Doctrine / DBAL, который я использую.