엔터프라이즈 애플리케이션의 데이터 가져 오기 절차를 리팩토링하고 더 나은 해결책을 찾고 싶습니다. 데이터를 가져올 때 각 데이터 세트에 대해 고유 한 엔티티를 작성해야하며 필드에이 ID를 순차적으로 지정하는 데 사용되는 카운터가 있습니다. 당신은 그 다음 자유로운 신분을 얻고 다음에 준비하기 위해 그 후에 그것을 증가시키기 위해 들판을 읽습니다. 이 'C'로 작성된 원래 응용 프로그램에서이 단계에서 수행되는 순간Oracle SQL : 필드를 읽고 늘리는 방법
: 여러 프로세스가 동일한 일을 할 경우
SELECT idnext FROM mytable;
UPDATE mytable SET idnext = idnext + 1;
은 물론, 여기에 경쟁 조건이 있습니다.
편집 : 중요한 공동 전정 : 데이터베이스/필드 정의를 건드릴 수 없으므로 시퀀스가 제외됩니다.
우리는 펄에서 다시 쓰고 있으며, 나는 똑같은 것을하고 싶습니다. 그러나 더 좋습니다. 원자 적 해결책이 좋을 것이다. 불행히도 내 SQL 기술은 제한되어 있으므로 집단 지혜로 바뀌고 있습니다. :-)
내가 업데이트 SQL에만 충분한 권한을 느낀다 '을 UPDATE MYTABLE SET의 idnext = idnext + 1;' 왜 idnext를 서버에 읽어야합니까? –