본문 바로가기

Update4

[MySQL] join 후 원하는 컬럼 update 하는 방법 MySQL에서A라는 테이블의 컬럼1을B라는 테이블과 join해서 update하고 싶은데 어떻게 해야할까요? 오라클만 사용하다가 MySQL을 쓰려니 생각대로 안되는 게 많군요 ㅠㅠupdate wp_moa_bible_mcheyne aset ever_seq_no = ( select ever_seq_no from wp_moa_bible_sort b where a.sort_name = b.name_short); update wp_moa_bible_mcheyne m, wp_moa_bible_sort s set m.ever_seq_no = s.ever_seq_no where m.sort_name = s.sort_name; 처음에 이렇게 사용해 봤는데 안되더라구요.오라클의 Merge를 이용한 update은 당연히 안될.. 2017. 2. 26.
[오라클/쿼리문] Oracle에서 Foreign Key가 걸려있는 컬럼값 업데이트(update) 하기 오라클에서는 Foreign Key가 걸려 있을 경우,ON UPDATE CASCADE 옵션이 실행되지 않기 때문에 컬럼값을 바꾸기가 쉽지 않습니다.이때, 트리거를 만들어서 부모테이블이 업데이트 될 때, 자식테이블도 업데이트 되도록 하면 됩니다. 자식테이블 COMTCCMMNDETAILCODE 테이블의 CODE_ID가 현재 Foreign Key구요.Foreign Key 제약 때문에 UPDATE가 진행되지 않습니다. 부모 : COMTCCMMNCODE.CODE_ID 자식 : COMTCCMMNDETAILCODE.CODE_ID아래와 같이 트리거를 하나 만들고 UPDATE문을 실행합니다.CREATE OR REPLACE TRIGGER RENAME_TRIGGER AFTER UPDATE ON COMTCCMMNCODE FOR.. 2015. 6. 18.
[쿼리문] Merge into를 이용해서 insert나 update를 자동으로 실행하자. MERGE INTO 쿼리를 이용하면 Update나 Insert를 하기 위해 해당 데이타가 존재하는지 확인하기 위해 따로 Select를 하지 않아도 됩니다. 데이타가 존재하는지 알아서 판단해서 Update이나 Insert를 실행하기 때문이죠. 저도 그 편리함 때문에 종종 MERGE INTO를 사용합니다.MERGE INTO 테이블명 USING DUAL ON ( 조인조건 ) WHEN MATCHED THEN UPDATE 문 WHEN NOT MATCHED THEN INSERT 문 쿼리는 위와 같이 구성이 됩니다. 조인조건에 해당하는 데이타가 있는지 확인해서 Update 또는 Insert를 실행하게 됩니다. 아래 예제를 보면 어떻게 사용하는지 명확하게 알 수 있습니다. MERGE INTO TB_USER USING .. 2015. 2. 4.
[쿼리문/오라클] Oracle에서 중복 조인을 피하기 위한 Update 방법 (MERGE 사용) 중복 조인을 피하기 위한 update 방법에 대해 알아보겠습니다. UPDATE TotalPoint T SET usePoint = (SELECT usePoint FROM UserPoint U WHERE U.userId = T.userId), totPoint = totPoint + (SELECT usePoint FROM UserPoint U WHERE U.userId = T.userId) FROM userId = 'testUser' 이런식으로 서브쿼리를 2번 같은 내용으로 사용하는 것은 비효율적이다. 만약에 더 많은 컬럼값을 Update해야 한다면 중복이 더 많아질 것이다.Merge를 사용하면 이러한 중복을 줄일 수 있다. MERGE INTO TotalPoint T USING ( SELECT userId, .. 2011. 4. 1.