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.