Совершенно верно: вы не можете определить первичный ключ в графическом интерфейсе.Это только приведет вас к гоночным условиям.Вам нужно позволить БД сгенерировать его (и любые другие автозначения), а затем вернуть его.
Я не знаю Марии БД, поэтому могу дать только ответы, связанные с SQL: и SELECT TOP, и SCOPE_IDENTITY имеютбыл использован.Однако это не гоночные условия, за исключением всех.Тем не менее, есть SQL OUTPUT предложение .Получение автоматически созданных данных, таких как PK, - вот для чего они нужны.И это даже часть первоначальной транзакции, связанной с оператором DML.
Я не смог найти совпадение с поиском в поиске «предложения MariaDB OUTPUT».Однако я нашел это:
Другие параметры для оператора включают операторы «INSERT ... SET», операторы «INSERT ... SELECT» и некоторые другие параметры.
Синтаксис "insert select" может быть наиболее близким эквивалентом комбинации SQL INSERT ... OUTPUT.Could.
Редактировать: Ну, INSERT SELECT в MariaDB, похоже, не тот дроид, которого вы ищете: https://mariadb.com/kb/en/library/insert-select/ Это больше похоже на массовую вставку / вставку из другой таблицы / импорт
Так что я думаю, что запасной вариант - создать собственную комбинацию вставки / выбора, которая является частью созданной вручную транзакции и блокирует таблицу.