Генерация автоинкрементного значения в составном первичном ключе не на первом поле в innoDB таблице

Суть проблеммы в том что для MyISAM таблиц есть такая возможность а для innoDB нет.

Есть таблица

messages
user_id INT
message_id INT


Как сделать так чтобы при вставке в таблицу значения user_id, значение для message_id генерировалось
автоматически?

Должна получится примерно такая картина
user_id message_id
1 1
1 2
1 3
2 1
2 2
2 3


Сделал триггер который перед вставкой устанавливает значение message_id как максималный id + 1,
все работает как надо, но после вставки я не знаю какой message_id записал триггер.

Вариант с вычислением message_id а затем вставки (в два запроса) не подходит.
  • Вопрос задан
  • 2469 просмотров
Пригласить эксперта
Ответы на вопрос 1
@resurection
Я бы сказал, что так делать не надо. message_id должно быть уникальным автоинкрементом.
А если Вы хотите выводить красивую нумерацию индивидуальную для каждого юзера, то сделайте отдельное поле `number` SAMLLINT — его и вычисляйте триггером.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы