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 하면 각 컬럼들이 나열되니 컬럼값을 추출해서 확인하시는게 좋습니다.
답변을 작성하시기 전에 로그인 해주세요.