У меня есть таблица USER с полем id, настроенным следующим образом:
* @ORM\Id
* @ORM\Column(type = "integer")
* @ORM\GeneratedValue(strategy = "AUTO")
Я бы хотел, чтобы столбец firstName по умолчанию был «user12», если id = 12, или «user1547», если id = 1547 и т. д.
Я знаю, что могу получить тот же результат другим способом (например, в моем "Entity" с помощью метода getFirstname или с помощью второй команды, которая обновляет значение firstName и т. д.), Но это не моя точка зрения: мне нужно это значение в базе данных и это должно быть сделано той же командой, что и та, которая «вставляет» моего нового пользователя.
Как вы думаете, это возможно ?
Я думаю, это возможно с currval на PostgreSql с помощью такой команды, как:
INSERT INTO user (id, firstname, lastname) values (nextval('user_id_seq'), ('user' || currval('tmp_play_id_seq')::text), 'Smith');
Но как насчет Доктрины? ?






Если вы используете автоматически сгенерированное значение, вы не знаете новый идентификатор до его сохранения, это означает, что вы не можете установить свое имя на firstIDVALUE.
Doctrine не зависит от базы данных, что означает, что она не может поддерживать специализированные функции одной базы данных по сравнению с другой, и ей нужно просто использовать общие стандартизированные функции.
Итак, есть несколько решений, которые я вижу сейчас: