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