[MYSQL] SELECT 한 내용 INSERT 시키는 방법

Select 한 내용을 그대로 Insert 시키는 방법과 약간 응용하는 법을 소개합니다. 처음에는 저도 방법이 정확히 떠오르지 않아 구글링을 했지만 간단명료하게 나와있는 글이 없어 시간을 좀 뺐겼던 기억이 납니다.

1. select 한 내용의 전체 컬럼 Insert

당연한 이야기지만 select하는 테이블과 insert할 테이블의 컬럼은 일치해야 합니다.

 

2. 원하는 컬럼만 select 해서 Insert

PRIMARY키가 있어 1번의 방법으로 INSERT가 안되는 경우 PRIMARY키를 제외한 컬럼을 직접 선택해서 INSERT하는 방법입니다.


++

위의 글을 참조한 이유는 잘 동작하던 쿼리문이

UID를 추가한 이후 

Column count doesn't match value count at row 1 의 에러 문구가 나왔었다.

실제 소스를 보면서 설명하겠습니다.


insert into HPG

select system, cbroff, consl from CNS

where system = system ; 


일 경우 에러가 없던 문구에서

Column (UID)를 추가하였습니다. 했더니 에러 문구가 위의 msgbox로 출력되었습니다.


즉 From table과 Insert Table의 컬럼 수가 일치하지 않다는 것으로 판단됩니다.


따라서, UID는 자동 증가이기 때문에


insert into HPG(system, cbroff, consl)

select system, cbroff, consl from CNS

where system = system ;


를 추가 함으로 써 에러를 수정할 수 있었습니다.

'Computer_IT > MySQL' 카테고리의 다른 글

[DB] 인덱스 란? / 인덱스 유,무 의 차이점  (0) 2017.05.24

+ Recent posts