답변:
INSERT INTO TARGET_TABLE SELECT * FROM SOURCE_TABLE;
편집 : 또는 테이블의 구조가 다른 경우 다음을 수행 할 수도 있습니다.
INSERT INTO TARGET_TABLE (`col1`,`col2`) SELECT `col1`,`col2` FROM SOURCE_TABLE;
편집 : 이것을 제한하기 위해 ..
INSERT INTO TARGET_TABLE (`col1_`,`col2_`) SELECT `col1`,`col2` FROM SOURCE_TABLE WHERE `foo`=1
테이블이 없으면 다음과 같이 동일한 스키마로 테이블을 만들 수 있습니다.
CREATE TABLE table2 LIKE table1;
그런 다음 데이터를 복사하려면 :
INSERT INTO table2 SELECT * FROM table1
SELECT ... INTO
는 테이블을 출력 파일이나 변수로 내보내는 것을 의미합니다. 테이블에 직접 넣지 않습니다. dev.mysql.com/doc/refman/5.7/en/select-into.html
table1이 크고 복사 프로세스 동안 잠그지 않으려면 대신 덤프 및로드를 수행 할 수 있습니다.
CREATE TABLE table2 LIKE table1;
SELECT * INTO OUTFILE '/tmp/table1.txt' FROM table1;
LOAD DATA INFILE '/tmp/table1.txt' INTO TABLE table2;
show processlist
하면 실행중인 쿼리를 볼 수 없습니다. 문제가 무엇인지 확실하지 않습니다.
CREATE TABLE target_table SELECT * FROM source_table;
소스 테이블과 동일한 구조로 새 테이블을 생성하고 source_table의 모든 행을 target_table로 복사합니다.
CREATE TABLE target_table SELECT * FROM source_table WHERE condition;
target_table에 복사 할 행이 필요한 경우 where 절에 조건을 적용하십시오.
이 시도. 내 Oracle 10g에서 잘 작동합니다.
CREATE TABLE new_table
AS (SELECT * FROM old_table);