[sql] MySQL에서 한 테이블의 내용을 동일한 데이터베이스 내의 다른 테이블로 복사하는 방법은 무엇입니까?

MySQL을 처음 사용합니다. 한 테이블의 내용을 동일한 데이터베이스 내의 다른 테이블로 복사하고 싶습니다. 기본적으로 다른 테이블의 테이블에 삽입하고 싶습니다. 이 작업을 수행하는 쉬운 방법이 있습니까?



답변

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


답변

table1이 크고 복사 프로세스 동안 잠그지 않으려면 대신 덤프 및로드를 수행 할 수 있습니다.

CREATE TABLE table2 LIKE table1;

SELECT * INTO OUTFILE '/tmp/table1.txt' FROM table1;
LOAD DATA INFILE '/tmp/table1.txt' INTO TABLE table2;


답변

이것은 나를 위해 일했습니다.

CREATE TABLE newtable LIKE oldtable;

새 테이블을 이전 테이블로 복제합니다.

INSERT newtable SELECT * FROM oldtable;

모든 행 데이터를 새 테이블에 복사합니다.

감사합니다


답변

단일 샷으로 콘텐츠를 만들고 복사하려면 SELECT를 사용하십시오.

CREATE TABLE new_tbl SELECT * FROM orig_tbl;


답변

이것은 나를 위해 일했습니다. WHERE 및 LIMIT 절을 사용하여 SELECT 문을 더 복잡하게 만들 수 있습니다.

먼저 데이터없이 큰 테이블을 복제하고 다음 쿼리를 실행 한 다음 큰 테이블을 자릅니다.

INSERT INTO table_small (SELECT * FROM table_large WHERE column = 'value' LIMIT 100)

매우 간단합니다. 🙂


답변

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 절에 조건을 적용하십시오.