어느 테이블에서 일련번호 역할을 하는 값들을 관리해야합니다.
그러니까 그 테이블의 구조는
Name | Value
1. A 1
2. B 11
3. C 3
뭐 이런식이겠죠.
그래서 필요할때는 select쿼리를 던져서 그값을 가져나와서 1을 더한후에
그 값을 사용하고 그 1이 더해진값을 다시 update를 하고..
뭐 그런식으로 쓰고 있습니다... ^^;;
근데 문제는.. 이것을 여러 유저가 사용하는 빈도가 아주 높다는 것입니다.
이게 primary key로 사용되는거라서
절대로 같은 값이 발생되어서는 안되는데... 되고 있는것이죠 *풀썩*
아마도 select쿼리 한번 날리고. update쿼리 날리고.. 해야하니까
이 사이에 텀이 길다보니 발생하는 문제인것 같은데...
어떻게 해결해야할지요?
어떤방법이든 좋습니다.
(이런 테이블을 사용하는것이 전제조건입니다. -.-;;)
조언좀 부탁드립니다.
그리고 답변중에 멀티 유저를 고려하신 답변이 있는데.. 그렇다고 Edit 박스를 쓰는 노가다를 할 수 야 없죠.
멀티 유저를 생각하신다면 트랙잭션 처리를 해주시면 됩니다. 물론 트랜잭션 처리를 해도 Sequence 기능을 잘 돌아가지요.
MS-SQL 의 경우에는 Sequence 라고 하지 않고 Generator 라고 하는 것 같네요, 이 기능은 일반적인 예로 게시판에 PK 로 번호를 부여할 때 사용합니다. 님 같은 경우에 사용하면 되겠네요. 시작값부터 일정 값만큼 계속 증가만 하기 때문에 절대 중복될 리가 없습니다. 15자리 정도 잡으면.. 수명이 다 할때 까지 절대 중복될리가 없습니다.
그럼 도움이 되었길..