database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 29742 게시물 읽기
No. 29742
pk를 자동증가로 줬을때...
작성자
Deck(dlehals2)
작성일
2010-07-29 21:12
조회수
7,415

예를 들어

10개의 레코드를 삽입하면 그 다음은 11이 되자나요.

근데 10개 삽입 -> 2개 삭제하면

총 레코드가 8이니까 9부터 시작하도록 하고 싶은데

이 자동증가값이 감소는 하지 않고 증가만 해서 다음 값은 11이 됩니다.

이걸 총 레코드 수로 바꿀 수는 없을까요?

SELECT COUNT(*)로 레코드 수 가져오는 방법 말구요..

이 글에 대한 댓글이 총 3건 있습니다.

-- 위의 것에서 문제가 있는데여

10개가 insert 되었을때 2개 삭제는 10하고 9인가여

이렇게 돼야 번호가 맞을듯 하고여

정확한 로직을 몰라서

마지막값 가져오는 쿼리

-->

select pk from table orderby pk limit 1

이걸 원하시는건지 ....

이정재님이 2010-07-30 17:43에 작성한 댓글입니다. Edit

그러니까 pk값이 전체 레코드 수와 관계있는 것이 안이라 그냥 레코드 삽입될 때마다 증가하자나요.

 

근데 이걸 레코드 수와 같도록 만들고 싶다 이거죠... SELECT COUNT(*) FROM table로 쿼리 한번 더 날리지 않구요..

 

가능할까요??..

Deck(dlehals2)님이 2010-07-30 17:54에 작성한 댓글입니다.

MyISAM엔진이라면 SELECT COUNT(*)는 상수 시간에 나오기 때문에 굳이 안 쓰실 이유는 없습니다.

오히려 별도의 테이블에 값을 따로 기억하는 것 보다 이 것이 가장 빠를 것이라 생각됩니다.

 

( 다른 테이블에 총 레코드 수를 기억하기 위해서는 INSERT/DELETE 때마다 Lock을 필요로 하기 때문에 빠른 속도를 보장할 수 없습니다. ) -> MyISAM의 COUNT(*) 에서도 마찬가지라고 생각되서 지웁니다.

박현우(lqez)님이 2010-08-02 11:10에 작성한 댓글입니다.
이 댓글은 2010-08-02 15:32에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
29746커리로그 포멧 Drop DB [1]
우짜라
2010-08-03
8098
29744다른 테이블 데이타 갯수 참조 정렬 [1]
정현철
2010-08-02
7078
29743MYSQL 페이징 프로시져 관련 [1]
박판규
2010-07-30
7729
29742pk를 자동증가로 줬을때... [3]
Deck
2010-07-29
7415
29741[오라클] 전체적인 흐름에 대해서 알고 싶습니다.
DB사랑
2010-07-29
7202
29740답변형 게시판에서의 쿼리 질문입니다. [1]
조경연
2010-07-28
8439
29739execute시 오류 문제.
이제노
2010-07-27
6779
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다