select 문을 사용하여 행을 삽입 할 수 있습니다. 모든 값이 같은 새 행을 삽입하려면 select 문을 작성하여 원하는 값을 가져옵니다. 다음과 같이 시도하십시오.
INSERT INTO myTable (field1, field2, field3)
SELECT field1, field2, field3 FROM myTable WHERE id = 3;
여기에 SQL Fiddle 예가 있습니다.
당신이 당신이 가진 옵션이 임시 테이블을 사용하는 것이 얼마나 많은 분야, 알 수없는 경우 편집 할 수 있습니다. 예를 들어 article을 참조하십시오. 임시 테이블이 필요한 이유는 중복 키 오류가 있으므로 행을 다시 삽입 할 수 없기 때문입니다. 따라서 논리는 다음과 같습니다. 새 테이블에 행을 추가하고 ID를 변경하고 새 ID로 중복 된 행을 이전 테이블에 삽입 한 다음 임시 테이블을 삭제하십시오.
id
열이 auto_increment라고 가정하면 새로운 ID를 현재 최대 ID + 1로 설정할 수 있습니다. ID를 업데이트 할 수있는 방법이 있다면 이미 존재하지 않습니다,이 작동합니다. 대신이 시도 :
여기
CREATE TEMPORARY TABLE temp SELECT * FROM myTable WHERE id = 3;
UPDATE temp SET id = (SELECT MAX(id) FROM myTable) + 1;
INSERT INTO myTable SELECT * FROM temp;
DROP TABLE temp;
다른 SQL Fiddle 예입니다.
SQL 피들을 어떻게 빨리 만들 수 있습니까? 그것은 테이블을 만들고 임의의 값과 물건을 삽입 영원히 걸립니다 ... – Shahar
@ Shahar 나는 MySQL의 질문에 많은 답변, 그래서 버릇이 된거야. Ctrl + C와 Ctrl + V는 친구입니다. – AdamMc331
@Shahar 또한 _Text to DDL_ 창은 친숙합니다. – Barmar