2008-10-14 3 views
1

많은 낙관적 동시성 예제는 데이터베이스 타임 스탬프 또는 플래그를 사용하여 업데이트를 참조합니다.C에서 삽입하기위한 동시성을 관리하는 방법 #?

여러 사용자가 동시에 저널 항목을 삽입하지만, 단 하나의 저널 항목이 허용 할 수 있습니다 :

그러나, 나는 여기에 설명하기 위해 인서트

에 대한

을 낙관적 동시성을 처리하는 것은 가짜 시나리오 날짜별로.

여러 사용자가 업무 일지 항목을 만들 수 있으므로 동시성 제어가 없으면 동일한 날짜에 여러 업무 일지 항목을 작성할 수 있습니다.

어떻게, 당신은 테이블의 내용을 확인하기 위해 '삽입에'트리거를 작성할 수

답변

0

(즉, 데이터베이스 고유 키 제약 조건) 데이터베이스를 사용하지 않고 애플리케이션 계층에서 문제가 발생하지 않도록 할 기준에 맞지 않으면 삽입물을 폐기하십시오. 대부분의 RDBMS에서 사용할 수 있습니다.

4

명시 적 고유 키 제약 조건을 정의하든 아니든 정확히 사용자가 요구하는 것입니다.

SQL 코드에 IF 블록을 작성하여 지정된 날짜의 분개 항목이 있는지 확인할 수 있습니다.

그러나 명시 적 고유 키 제약 조건은 더 나은 성능을 제공 할 것입니다.

+0

...하지만 IF는 적절한 격리 수준 (아마도 Serializable)의 트랜잭션에 있어야합니다. – Joe

+0

True - 명시 적 고유 키 제약 조건은 트랜잭션을 필요로하지 않습니다. 해리슨, 직장에 맞는 도구를 사용하십시오 :) –

+0

당신은 바로 할리예요.하지만 그건 제가 가지고있는 제약입니다. – hmak

관련 문제