INSERT INTO...SELECT를 사용하여 대상 테이블에 모든 열 삽입
와일드카드(*) 선택이 포함된 INSERT INTO 문입니다. 문제를 해결하고 작동하는 솔루션을 찾아보겠습니다.
열 이름을 지정하지 않고 (*)를 사용하여 모든 열을 선택하면 오류가 발생합니다. 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';
col1, col2, ..., coln 바꾸기 테이블의 실제 열 이름과 함께.
id 열과 관련하여 두 테이블 모두 자동 증가 ID가 있고 데이터가 이미 존재하는 경우 두 테이블 중 하나에서 잠재적인 중복 키 충돌을 피하기 위해 쿼리의 열 목록에서 id를 생략하는 것을 고려할 수 있습니다.
빈 대상 테이블의 경우 이러한 생략은 문제를 일으키지 않습니다. 그러나 데이터가 있는 테이블의 경우 id 열을 제외하면 복사된 행에 대해 새로운 고유 ID가 생성됩니다.
위 내용은 INSERT INTO...SELECT를 사용하여 MySQL에서 한 테이블의 모든 열을 다른 테이블에 올바르게 삽입하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!