Jeśli user_id jest kluczem podstawowym AUTO_INCREMENT, nie możesz tego zrobić za pomocą pojedynczej instrukcji, nawet jeśli używasz wyzwalacza.
Problem polega na tym, że wartość AUTO_INCREMENT jest generowana dopiero po BEFORE INSERT wyzwalacz działa, ale nie możesz zmienić username w AFTER INSERT wyzwalacz.
Musisz tylko wykonać INSERT , a następnie natychmiast wykonaj UPDATE .
Jeśli user_id jest nie AUTO_INCREMENT, ale zamiast tego jest to coś, co sam określasz, to jest łatwe, po prostu wykonujesz konkatenację w swoim kodzie PHP, zanim przekażesz wartości jako parametry.
Aktualizacja:Nie możesz tego zrobić również z kolumnami generowanymi przez MySQL 5.7. Powoduje to ten błąd podczas próby utworzenia tabeli: