한컬럼을 랜덤한 숫자로 전부 업데이트 하는 쿼리 문의 드립니다(티베로) 0 2 1,929

by 최현 [Tibero] [2018.06.22 15:56:12]


BEGIN

    FOR i IN 1..2915 LOOP

    UPDATE rankey

    SET (randomkey) = (SELECT CEIL(DBMS_RANDOM.VALUE(100000,999999)) RANDOM FROM DUAL);

    END LOOP;

END;

rankey 라는 테이블에 ramdomkey 컬럼을 추가 했습니다. 

해당 row 는 2915 개가 있습니다. 

randomkey 컬럼에 랜덤 숫자로 업데이트를 하려고 하는데 저렇게 실행을 하면 한가지 랜덤 숫자로 전부 업데이트가 됩니다. 

조건을 줘서 각각 다른 숫자로 업데이트를 시켜야 하는데 전혀 감이 안옵니다. 

아시는 분께서는 도움 부탁드리겠습니다. 이걸로 몇일째 고생중이네요  

by 마농 [2018.06.22 17:24:20]
-- 루프문 제거.
-- 스칼라 서브쿼리 제거.
-- PL/SQL(Begin ~ End) 도 굳이 필요 없고.
UPDATE rankey
   SET randomkey = CEIL(DBMS_RANDOM.VALUE(100000,999999))
;

 


by 최현 [2018.06.25 08:54:19]

감사합니다 몇일 동안 고생했는데 이제야 풀렸네요 감사합니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입