andry33822, огорчу. Описанная мной в комментарии к вопросу процедура требует ВСТАВКИ записи в таблицу users и ОБНОВЛЕНИЯ существующей записи в таблице users_apikey. То есть INSERT в одну таблицу + UPDATE другой таблицы.
В один запрос это никаким образом не укладывается. Но задачу можно решить. Триггером.
CREATE TRIGGER tr_assign_apikey_to_user
AFTER INSERT
ON users
FOR EACH ROW
UPDATE users_apikey SET username = NEW.username WHERE username = '' LIMIT 1;
DEMO fiddle
Правда, триггер простейший, и ничего не проверяет. По-хорошему надо как минимум проверить, что свободный apikey - есть, и если нет - то сгенерировать ошибку добавления юзера. Ну и не исключаю дополнительных условий - например, мне лично запись в apikey, не имеющая вменяемого значения в поле namekey, как-то не нравится.