Criei uma tabela usando uma consulta de seleção complicada via CREATE TABLE ... AS SELECT...
. Como posso adicionar uma chave primária de autoincremento nesta consulta?
Por exemplo:
create table `user_mv` select `user`.`firstname` as
`firstname`,
`user`.`lastname` as `lastname`,
`user`.`lang` as `lang`,
`user`.`name` as `user_name`,
`group`.`name` as `group_name`
from `user`
inner join `user_groups` on (`user`.`user_id`=`user_groups`.`user_id`)
left join `group` on (`group`.`group_id`=`user_groups`.`group_id`)
where `user`.`lang`=`group`.`lang`
Esta consulta cria uma tabela que contém firstname
, lastname
, lang
, username
, group_name
colunas. Eu quero que também tenha uma id
coluna que seja uma chave primária de autoincremento.
Existe alguma maneira de fazer isso alterando esta consulta? Eu sei que posso fazer isso alterando a tabela depois de executar essa consulta, mas se houver alguma maneira de fazer isso diretamente na create table
declaração, gostaria de saber como fazer isso.
Contanto que você não tenha uma coluna 'id' em seu
SELECT
, isso parece fazer exatamente o que você deseja. As colunas no select serão anexadas à direita das colunas que você declarar.http://dev.mysql.com/doc/refman/5.6/en/create-table-select.html (também em versões anteriores).