mysql에서 선택


88

저는 MSSQL 사용자이며 이제 데이터베이스를 MySQL로 변환하고 있습니다. MySQL에서 다음 쿼리를 작성하고 있습니다.

select * into new_tbl from tbl

그리고 다음과 같은 오류가 발생합니다.

Error : Undeclared variable new_tbl

이러한 쿼리는 MySQL에서 어떻게 올바르게 작성되어야합니까?

답변:


130

CREATE TABLE SELECT 구문을 사용합니다.

http://dev.mysql.com/doc/refman/5.0/en/create-table-select.html

CREATE TABLE new_tbl SELECT * FROM orig_tbl;

SELECT INTO 명령은 새로운 테이블을 생성하고 다른 하나의 데이터베이스에서 데이터를 복사 할 수 있습니다
샨 Regmi

3
올바른 구문은 다음과 같습니다. CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
csname1910

CREATE ... SELECT가 작동합니다. 이것이 허용되는 대답이어야합니다. "AS"키워드는 분명히 선택 사항이며 SELECT INTO는 MySQL에서 작동하지 않습니다.
leo

인덱스를 생성하지 않는다는 점을 강조합니다!
Ivan Ivković

89

MySQL에서는 다음과 같아야합니다.

INSERT INTO this_table_archive (col1, col2, ..., coln)
SELECT col1, col2, ..., coln
FROM this_table
WHERE entry_date < '2011-01-01 00:00:00';

MySQL 문서


8
미묘한 차이. 이 경우 테이블이 존재해야합니다. 의 경우 select into그렇지 않습니다. 사실 그럴 경우 오류라고 생각합니다. 따라서이 솔루션은 테이블 스키마를 복제하는 문으로 시작해야합니다.
paxdiablo

paxdiablo가 말했듯이, 삽입하려는 테이블이 이미 존재해야합니다. OP가 테이블을 생성하는 데 사용되는 MSSQL 구문입니다.
Dave K

7
OP의 질문에 대답하지 않았을 수도 있지만 다행히도 이것이 제가 찾던 것입니다.
garyh
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.