MySQL создает временную таблицу с автоинкрементом только из SELECT

С MySQL я знаю, что можно создать временную таблицу из SELECT: создать временную таблицу в операторе SELECT без отдельной CREATE TABLE

Я также знаю, что можно создать автоинкремент во временной таблице: автоинкремент во временной таблице

Я хочу сделать и то и другое одновременно: создать временную таблицу из инструкции SELECT, и я хочу, чтобы во временной таблице был столбец с автоинкрементом.

Это возможно сделать?

1 ответ

Решение

Если вы хотите создать временную таблицу со столбцом номера строки, используйте переменные:

create temporary table temp as
    select (@rn := @rn + 1) as seqnum, t.*
    from t cross join
         (select @rn := 0) vars;

Это не будет автоматически увеличиваться для новых inserts. Если вам это нужно, вам нужно изменить определение таблицы.

Другие вопросы по тегам