mysql 레코드복사를 하려고 합니다.

mysql 레코드복사를 하려고 합니다.

QA

mysql 레코드복사를 하려고 합니다.

본문

insert into tableA select * from tableB where idx='2'

 

이런 형태로 전체 레코드를 복사하려고 하는데 해당 idx 값이 primary key 라서 복사가 안되더군요

검색을 해봐도 해당 idx를 제외하고 

 

insert into tableA (컬럼1, 컬럼2) select (컬럼1, 컬럼2) from tableB where idx='2'

 

이런 형태로 하라고 하는데 컬럼이 많고 변경이 될 가능성이 있어서 primary key 외에 복사 방법이 없나요?

 

그누보드를 봐도 복사하기를 확인하니 데이터를 가져와서 하나하나 넣어서 복사를 하던데...

 

컬럼을 쓰지 않고 복사할 방법은 없는지요?

이 질문에 댓글 쓰기 :

답변 1

컬럼값을 명시하지 않고 넣는방법은 primary key 를 해제하는 방법밖에는 없습니다.

 

하지만 그 방법은 데이타를 꼬이게 만드는 요인이 될수있고, 위험합니다.

 

primary key 가 자동증가(auto_increment)라면 

그값을 제외하고 다른값을 명시하시는게 좋습니다.

 

desc table 하면 각 컬럼들이 나열되니  컬럼값을 추출해서 확인하시는게 좋습니다.

 

답변을 작성하시기 전에 로그인 해주세요.
전체 2

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT