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