auto_increment를 사용해서 순번을 매기면 중간 데이터 삭제 시 중간 번호가 비게 된다.

 

1

2

3

4

5

       << 6번 삭제

7

8

9

 

SET @cnt = 0;

 

UPDATE 테이블명 SET 열 = @cnt:= @cnt + 1;

 

ALTER TABLE 테이블명 AUTO_INCREMENT = 1;

 

위 쿼리를 적용하면 빠진 번호가 채워진다.

 

 

번외) 조회시 각 행의 순번을 부여하고 싶다면

 

SET @cnt = 0;

 

SELECT *, @cnt:= @cnt + 1 FROM test ORDER BY id [ASC OR DESC];

 

 

원인

 

DBEAVER에서 계정 생성해서 로그인하면 잘 된다.

 

하지만 SQLPLUS에서는 로그인이 안되는 상황이 발생

 

반대로 SQLPLUS에서 계정생성하면 DBEAVER에서는 안됐다.

 

 

해결

 

tnsnames.ora 파일에서

 

ORCL12CR2 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1522))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl12cr2)
    )
  )

 

SERVICE_NAME을 확인하고 DBEAVER에서 바꿔주었다.

+ Recent posts