2013-07-01 2 views
0

내 데이터베이스의 모든 행을 복제 할 수있는 방법을 찾고 있는데, 내보내기를 시도한 다음 가져 오기를 시도했지만 중복 키 오류가 발생합니다.동일한 테이블에있는 모든 데이터 중복 MYSQL

이유는 테스트 목적으로 사용하는 것입니다. 필자가 가지고있는 시스템을 테스트하기 위해 더미 데이터로드가 필요합니다.

이에 대한 직접적인 진술이 있습니까? 아니면 ID를 제외한 모든 데이터를 내보내는 방법이 있습니까 (또는 ID를 MAX(ID) + 1 또는 AUTO INCREMENT으로 변경)?

답변

2

같은 the_pk, field_1, field_2

뭔가, 3 개 필드와 테이블을 상상해보십시오. your_table_name을 위의 코드 &의 실제 테이블 이름으로 바꾸면 필수 행 번호를 충족 할 때까지 코드가 반복적으로 실행됩니다. 나는 그것이 효과가 있어야한다고 생각한다.

+0

대단히 고마워요! – Adam

2

를 착용 한 기록하고 실행

insert into mytable select * from mytable 

10 배. 그러면 1024 개의 레코드가 생깁니다. 만족할 때까지 계속하십시오.

+0

여전히 # 1062가 반환됩니다 - 'PRIMARY'키의 중복 항목 '1' – Adam

+0

아, 기본 키가 있으니? 그럼, AUTOINCREMENT는 INSERT와 SELECT 모두에서 필드 목록을 지정하도록합니다. –

+0

구조 게시, 정확한 쿼리를 알려 드리겠습니다. –

0

INSERT을 사용할 수 있으며 값은 SELECT 일 수 있습니다. 기본 키를 선택하지 않고 삽입 필드에 값을 정의하지 마십시오.

INSERT INTO your_table_name(parent_id,priority,text,shortname,weighting,g_or_a, 
    dept,ksf,day_start,day_end,date_start,date_end,depends_on,is_question,budget, 
    ccode,responsible,accountable,consulted,informed) 
(SELECT parent_id,priority,text,shortname,weighting,g_or_a,dept,ksf, 
    day_start,day_end,date_start,date_end,depends_on,is_question,budget,ccode, 
    responsible,accountable,consulted,informed FROM your_table_name); 

첫째, 테이블 'your_table_name'에 한 행을 삽입 :

당신이 시도 할 수

INSERT INTO the_table(field_1, field_2) (SELECT field_1, field_2 FROM the_table) 
관련 문제