예를 들어
10개의 레코드를 삽입하면 그 다음은 11이 되자나요.
근데 10개 삽입 -> 2개 삭제하면
총 레코드가 8이니까 9부터 시작하도록 하고 싶은데
이 자동증가값이 감소는 하지 않고 증가만 해서 다음 값은 11이 됩니다.
이걸 총 레코드 수로 바꿀 수는 없을까요?
SELECT COUNT(*)로 레코드 수 가져오는 방법 말구요..
-- 위의 것에서 문제가 있는데여
10개가 insert 되었을때 2개 삭제는 10하고 9인가여
이렇게 돼야 번호가 맞을듯 하고여
정확한 로직을 몰라서
마지막값 가져오는 쿼리
-->
select pk from table orderby pk limit 1
이걸 원하시는건지 ....
그러니까 pk값이 전체 레코드 수와 관계있는 것이 안이라 그냥 레코드 삽입될 때마다 증가하자나요.
근데 이걸 레코드 수와 같도록 만들고 싶다 이거죠... SELECT COUNT(*) FROM table로 쿼리 한번 더 날리지 않구요..
가능할까요??..
MyISAM엔진이라면 SELECT COUNT(*)는 상수 시간에 나오기 때문에 굳이 안 쓰실 이유는 없습니다.
오히려 별도의 테이블에 값을 따로 기억하는 것 보다 이 것이 가장 빠를 것이라 생각됩니다.
( 다른 테이블에 총 레코드 수를 기억하기 위해서는 INSERT/DELETE 때마다 Lock을 필요로 하기 때문에 빠른 속도를 보장할 수 없습니다. ) -> MyISAM의 COUNT(*) 에서도 마찬가지라고 생각되서 지웁니다.