MySQL - назначить значения AUTO_INCREMENT другому столбцу в таблице

0

У меня есть следующая таблица:

Изображение 174551

id поля установлен на AUTO_INCREMENT. Я хочу, чтобы поле user_id имело те же значения, что и id.

Во-первых, я попытался установить user_id как AUTO_INCREMENT, но это невозможно сделать, потому что в таблице может быть только одно поле AUTO_INCREMENT.

Во-вторых, я попытался написать триггер, который будет присваивать значения от id user_id:

create trigger 'upd' before update 
on 'obligations' 
for each row 
set old.user_id = old.id;

Это дает следующую ошибку:

ERROR 1362 (HY000): Updating of OLD row is not allowed in trigger

Может ли кто-нибудь предложить, как это решить?

Примечание. Мой вопрос отличается от того, что он дает ошибку OLD trigger statement, а не NEW trigger statement error.

  • 0
    установить user_id в триггере after update
Показать ещё 3 комментария
Теги:
triggers
auto-increment

1 ответ

0

Я сделал это, создав триггер, который будет запущен в каждую операцию вставки. посмотрите на следующее:

 DELIMITER $$
 CREATE TRIGGER insert_example
 BEFORE INSERT ON obligations
 FOR EACH ROW 
 SET NEW.user_id= 
  ( SELECT AUTO_INCREMENT FROM information_schema.TABLES 
     WHERE TABLE_SCHEMA = DATABASE() 
    AND TABLE_NAME = 'obligations' ); 
  end $$

Ещё вопросы

Сообщество Overcoder
Наверх
Меню