각 행에 대한 테이블 트랜잭션에서 number_order를 생성해야합니다 (순서는 1, 2, 3 ...입니다). 내 솔루션 테이블 트랜잭션에 대한 삽입 전에 트리거를 만듭니다. 트리거의 임무는 테이블의 총 행 수입니다 (트랜잭션에서 v_count로 셀 수 선택 (1)) -> 다음 설정 : new.num_order = v_count + 1트리거에서 멀티 스레딩을 처리하십시오.
거의 모든 경우에 해당 솔루션을 실행할 수 있지만 시스템이 많은 경우 많은 쓰레드가 테이블에 삽입되고, 멀티 쓰레딩에 의해 실행되는 트리거와 같은 명령을 반환합니다 (이유는 select 명령이 삽입되기 전에 같은 시간에 &이라고 부름). 대체 솔루션을 알려 줄 수 있습니까? 미리 감사드립니다. P/s : Oracle 12c 데이터베이스를 사용하고 있습니다. 그리고 순서는 실제로 테이블의 다른 열 (예 : Room_id)을 기반으로하므로 시퀀스를 사용할 수 없습니다. 따라서 전체 선택 명령은 다음과 같습니다. select count (1) to v_count from room_id = : new.room_id)
정말 고마워요. 하지만이 솔루션은 나를 위해 복잡해 보입니다. – Khoa
@Khoa 요구 사항에 숨겨진 함정이 복잡하기 때문에 솔루션은 복잡합니다. –