Se
user_id
é uma chave primária AUTO_INCREMENT, então você não pode fazer isso com uma única instrução, mesmo se você usar um gatilho. O problema é que o valor AUTO_INCREMENT não é gerado até depois do
BEFORE INSERT
o gatilho é executado, mas você não pode alterar username
no AFTER INSERT
acionar. Então você só precisa fazer o
INSERT
, e imediatamente faça um UPDATE
. Se
user_id
é não um AUTO_INCREMENT, mas em vez disso é algo que você mesmo especifica, então é fácil, basta fazer a concatenação no seu código PHP antes de passar os valores como parâmetros. Atualização:Você também não pode fazer isso com colunas geradas pelo MySQL 5.7. Isso resulta neste erro quando você tenta criar a tabela: