CREATE TABLE… AS SELECT의 기본 키 자동 증가


12

를 통해 복잡한 선택 쿼리를 사용하여 테이블을 만들었습니다 CREATE TABLE ... AS SELECT.... 이 쿼리에 자동 증분 기본 키를 추가하려면 어떻게해야합니까?

예를 들면 다음과 같습니다.

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` 

이 쿼리는 포함하는 테이블 생성 firstname, lastname, lang, username, group_name열을. id자동 증가 기본 키 인 열을 원합니다 .

이 쿼리를 변경하여이를 수행 할 수있는 방법이 있습니까? 이 쿼리를 실행 한 후 테이블을 변경 하여이 작업을 수행 할 수 있다는 것을 알고 있지만 create table문 에서 직접 수행 할 수있는 방법이 있다면 그 방법을 알고 싶습니다.

답변:


11
CREATE TABLE `user_mv` (id INT AUTO_INCREMENT PRIMARY KEY) 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`;

에 'id'열이 없으면 SELECT원하는대로 정확하게 수행하는 것 같습니다. 선택 항목의 열은 선언 한 열의 오른쪽에 추가됩니다.

http://dev.mysql.com/doc/refman/5.6/en/create-table-select.html (이전 버전에서도).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.