좋은 아침입니다!!! 쿼리문 하나만 질문드릴게요^_^ 0 2 2,937

by 준일정 [MySQL] mssql mysql oracle sql query [2018.03.23 09:15:54]


쿼리질문.png (31,068Bytes)

이런 쿼리를 작성할 수 있을까요?

by 우리집아찌 [2018.03.23 09:34:16]

-- 회원번호가 PK이면 굉장히 위험합니다.(회원번호를 사용하는 모든 테이블에 UPDATE가 생겨야합니다.)
-- 회원번호가 업데이트 되야 할 이유가 궁금하네요. 

-- 일단 UPDATE 문은 아래와 같습니다. 

DROP TABLE T1 PURGE ;

CREATE TABLE T1 AS
SELECT 1 SEQ , '김근식' NM , 12 YR FROM DUAL UNION ALL
SELECT 2 SEQ , '이찬규' NM , 23 YR FROM DUAL UNION ALL
SELECT 3 SEQ , '배준호' NM , 42 YR FROM DUAL UNION ALL
SELECT 4 SEQ , '배기훈' NM , 23 YR FROM DUAL UNION ALL
SELECT 5 SEQ , '고릴라' NM , 22 YR FROM DUAL ;

SELECT * FROM T1

DELETE FROM T1 WHERE SEQ  = 4 ;

COMMIT;

SELECT * FROM T1

UPDATE T1 SET 
   SEQ = SEQ - 1 
 WHERE SEQ > 4 ;
 
 COMMIT;
 
 



 


by 마농 [2018.03.23 09:48:12]

어떻게든 하고자 한다면 가능은 하겠지만. 추천하지 않습니다.
번호가 반드시 연속적이어야 할 이유는 없습니다.
연속적인 번호가 필요하다면 조회할 때만 가공하면 됩니다.
 

SELECT @rn := @rn + 1 AS 번호
     , 회원번호, 이름, 나이
  FROM (SELECT 회원번호, 이름, 나이
          FROM 회원
         ORDER BY 회원번호
        ) a
     , (SELECT @rn := 0) b
;

 

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