У меня есть база данных MySQL, которая содержит таблицу пользователей. Первичным ключом таблицы является "userid" , который устанавливается как поле автоматического приращения.
То, что я хотел бы сделать, - это когда я вставляю нового пользователя в таблицу, чтобы использовать то же значение, которое создает автоматический прирост в поле "userid" в другом поле "default_assignment".
например.
Мне бы хотелось сделать следующее выражение:
INSERT INTO users ('username','default_assignment') VALUES ('barry', value_of_auto_increment_field())
поэтому я создаю пользователя "Barry", "userid" генерируется как 16 (например), но я также хочу, чтобы "default_assignment" имел такое же значение 16.
Есть ли способ достичь этого, пожалуйста?
Спасибо!
Update:
Спасибо за ответы. Поле default_assignment не является избыточным. Default_assigment может ссылаться на любого пользователя в таблице users. При создании пользователя у меня уже есть форма, которая позволяет выбрать другого пользователя как default_assignment, однако есть случаи, когда он должен быть установлен для одного и того же пользователя, поэтому мой вопрос.
Update:
Хорошо, я опробовал предложение триггеров обновления, но все равно не могу заставить это работать. Вот триггер, который я создал:
CREATE TRIGGER default_assignment_self BEFORE INSERT ON `users`
FOR EACH ROW BEGIN
SET NEW.default_assignment = NEW.userid;
END;
При вставке нового пользователя, однако для параметра default_assignment всегда установлено значение 0.
Если я вручную установил идентификатор пользователя, то параметр default_assignment будет установлен на идентификатор пользователя.
Поэтому процесс генерации автоматического назначения, очевидно, происходит после срабатывания триггера.