Background Image

FORUM

조회 수 12970 추천 수 0 댓글 7
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
insert into pjs(id, [name])
select a.hostname, a.[alias]  from ivu_t_ast_hwsvr a
on DUPLICATE KEY UPDATE [name] =  a.[alias];

pk 는 id 입니다. 

아시다시피.. on duplicate key update 를 써서, pk에 위반이 되면, insert 가 아닌 update 를 하고 싶습니다.

그런데, select 해가지고.. 들어가는 데이터는 update를 할수 없더라구요. 위와 같은 쿼리로 말이죠.. 

혹시 방법이 있는지... 알고싶습니다.
  • ?
    seongjoon 2011.10.26 08:30

    안녕하세요.

    큐브리드를 사용해 주셔서 감사합니다. 문의하신 내용에 대하여 답변을 준비중이오니, 조금만 기다려 주시면 감사하겠습니다.

  • ?
    정만영 2011.10.26 18:53

    안녕하세요.

    문의하신  DUPLICATE KEY UPDATE 사용은 CUBRID2008R3.0부터 가능하며  http://www.cubrid.com/zbxe/70586  FAQ를 참조세요.

  • ?
    초식곰 2011.10.26 19:01

    3.0부터 지원되는거 알고 있구요. 

    INSERT INTO a_tbl VALUES(1, 'aaa', '222-2222') ON DUPLICATE KEY UPDATE phone = '222-2222';


    이렇게 update구문에 그냥 상수로 저렇게 넣으면 들어가는것도 알고 있습니다.


    그렇지만.. 제가 질문한 내용을 보시면, insert 를 select구문으로 했을때, select 데이터중에서, pk랑 비교해서 없는건 insert , pk랑 비교해서 값이 있는건 update를 하고 싶습니다..


    그런데, 위의 질문과 같이 하면 a.[alias] 가 정의되어 있지 않다고 나옵니다...

  • ?
    clazzart 2011.10.26 19:21
    아래처럼 REPLACE를 써서 구현할 수 있을 듯 싶습니다.

    replace into pjs (id, [name])
    select a.hostname, a.[alias] from ivu_t_ast_hwsvr a;

  • ?
    초식곰 2011.10.26 19:24

    replace를 사용하면 update시.. 명시하지 않는 컬럼에 대해서는 모두 null로 대체되더라구요.. 전 기존의 데이터는 그대로 있고, 명시한 컬럼에 대해서만 update를 하고 싶습니다.

  • ?
    clazzart 2011.10.26 23:39

    네. replace 문은 기존 레코드를 삭제하고 새로 입력하기 때문에 replace 문에서 언급하지 않는다면 default value로 채우게 됩니다.

    따라서 NULL이 들어가게 된 것이구요. 


    지금 개발 중인 merge 문을 사용하면 가능해질 것 같은데, 

    현재 버전에서 쿼리 하나로 해결한다면 그래도 replace 밖에 없어 보입니다. 아니면 로직으로 풀어서 써야 할 것 같구요.

    번거롭지만 아래처럼 나머지 컬럼들의 값을 뽑는 subquery를 써서 채워주는 방법을 쓰면 될 것 같습니다.


    replace into pjs (id, [name], c)

    select a.hostname, a.[name] , (select c from pjs where id = a.hostname) from ivu_t_ast_hwsvr a;


  • ?
    초식곰 2011.10.27 00:10

    그렇군요. 빨리 merge 도 개발이 되었으면 좋겠습니다. 감사합니다.


  1. CUBRID 사용자를 위한 DBeaver 도구 출시 안내

    Date2024.04.23 Byadmin Views53
    read more
  2. SQLGate for CUBRID 영구 무료 라이선스 제공

    Date2020.04.09 Byadmin Views4459
    read more
  3. 말도 안되는 Exception이 발생하는데 대체 뭘까요;;

    Date2011.11.18 By안지민 Views48216
    Read More
  4. 이거... 뭐가 문제 일까요?

    Date2011.11.18 By안지민 Views27661
    Read More
  5. 전에 조인 관련 비슷한 질문을 올렸는데도 응용을 하지 못해 쿼리를 올립니다.

    Date2011.11.17 By하루야 Views12407
    Read More
  6. 큐브리드 매니저, 쿼리브라우저 차이점 문의

    Date2011.11.12 Byjyuvenia Views13568
    Read More
  7. php 모듈 로드가 안됩니다.

    Date2011.11.11 By김우람 Views14354
    Read More
  8. 데이타 처리 속도 문제가 있습니다.

    Date2011.11.11 Bypdk24 Views11712
    Read More
  9. 4.0 최초 설치후 DB 구동 불가 증상

    Date2011.11.10 Byreerror Views11196
    Read More
  10. 4.0 마이그레이션 중 스키마 로드 오류

    Date2011.11.10 Byreerror Views18171
    Read More
  11. 실행 오류 :-46 (Internal error: slot 3 on page 4231 of volume)

    Date2011.11.09 Byreerror Views26849
    Read More
  12. 증분백업 복구가 잘 않되고 있습니다.

    Date2011.11.08 Byreerror Views11508
    Read More
  13. 리눅스서버에 설치된 cubrid삭제후 로그인할때마다 에러메시지가 나옵니다.(11/06=>관련 추가질문 올림)

    Date2011.11.05 By어려운큐브 Views13
    Read More
  14. 1대의 서버에 버젼이 다른 cubrid를 설치하려고 합니다.

    Date2011.11.03 By어려운큐브 Views14
    Read More
  15. 델파이 ADOStoredProcedure 컴포넌트에서 큐브리드저장함수의 리턴값을 받고싶습니다.

    Date2011.11.03 Bywolf Views21627
    Read More
  16. Stored procedure execute error: 자바 저장프로시저 관련오류입니다.

    Date2011.11.01 Bywolf Views21799
    Read More
  17. 실시간 Insert처리

    Date2011.10.29 By동해아빠 Views12444
    Read More
  18. 큐브리드 버전 선택 문의

    Date2011.10.29 By유니콘 Views36237
    Read More
  19. 페이징과 전체 카운트 쿼리 가져올 수 있도록 해주세요.ㅠㅠ

    Date2011.10.29 By마산이프로 Views30076
    Read More
  20. 질의자동화 관련하여 문의드립니다.

    Date2011.10.28 By........ Views9080
    Read More
  21. 질의 자동화 실행 오류

    Date2011.10.26 Byhoops11 Views8121
    Read More
  22. on duplicate key update 에 대해서..

    Date2011.10.26 By초식곰 Views12970
    Read More
Board Pagination Prev 1 ... 140 141 142 143 144 145 146 147 148 149 ... 200 Next
/ 200

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales