아마도 그래야 할것 같습니다.
방금 메뉴 확인해 보니 3.22 버전에는 select 구문을 지원하지 않습니다.
3.23 버전에서 부터 CREATE TABLE 구문에서 select 절이 지원되고 있습니다.
그러니 그런 구문을 사용하실려면 3.23 버전을 깔아야 할 것 같습니다.
> 답변 감사합니다.
>
> 참고로 제 mysql 서버 버전은 '3.22.32, for pc-linux-gnu on i586'
> 입니다.
>
> 그리고 저도 정재익님과 같이 아주 간단한 형식의 select 문을 테스트
> 해 봤었는데 역시 안되더군요.
>
> 그러면 정재익님과 같은 새로운 mysql 서버를 깔아야 하나요?
>
> 어쨋든 답변 감사드립니다.
>
> > 그렇군요.
> > 일단 사용중인 MySQL의 버전이 어떻게 되는지요. 현재 DSN 에 올라와 있는 MySQL
> 매뉴얼은 개발버전인 3.23.x 버전입니다. 그리고 temporary table 을 만들 경우 type=h
> eap 라는 옵션은 분명히 메모리에 temporary 테이블을 만듭니다.
> > 그리고 table creation 명령어에서 select 구문은 절대로 subquery 가 아닙니다.
> 단지 select 구문에 합당한 row 들로 테이블을 구성하라는 명령에 불과합니다.
> > MySQL 은 여전히 subquery 를 지원하지는 않습니다.
> >
> > 참고로 저가 행해 본 temporary table 생성 테스트입니다.
> >
> > mysql> create table t type=heap select * from test;
> > Query OK, 3 rows affected (0.00 sec)
> > Records: 3 Duplicates: 0 Warnings: 0
> >
> > mysql> select * from t;
> > +------+
> > | t |
> > +------+
> > | 0 |
> > | 1 |
> > | 2 |
> > +------+
> > 3 rows in set (0.00 sec)
> >
> > mysql>
> >
> > 잘들어가고 잘 생성이 됩니다.
> > 현재 저가 사용중이 MySQL의 버전은 mysqld Ver 3.23.12c-alpha for pc-linux-gnu
> on i686 로서 개발자 버전입니다.
> >
> > > 테이블 만들 때, TYPE을 HEAP으로 하면 메모리에만 상주하는
> > > 가상 테이블이 만들어진다고 메뉴얼에 나와 있더군요.
> > >
> > > 그리고 메뉴얼에 보니
> > > CREATE TABLE TEST (a int not null auto_increment primary key(a), key(b)) typ
> e=heap select b, c f
> > > rom test2;
> > >
> > > 이런 형식으로 쿼리를 주면 새로운 가상 테이블이 만들어 진다고
> > > 되어 있더라구요.
> > >
> > > 그런데 제가 mysql 처음 시작할 때 mysql 에서는 서브 select를
> > > 지원하지 않는다고 들었거든요.
> > >
> > > 그리고 제 서버에서 위의 쿼리로 돌리면 'select...' 부분에 syntax
> > > 에러가 있다고 나오네요.
> > >
> > > 어떤 것이 틀린 것인지...
> > >
> > > 참고 현재 이 게시판도 가상 테이블을 못 만들어서 검색시 페이지
> > > 별로 화면에 처리 못한 것 아닌지...?
> > >
> > > 제가 현재 게시판 검색하거든요....
|