두 명의 사용자가 동시에 데이터 조각을 삽입합니다.
insert into table set name='tom',num=2
insert into table set name='jack',num=2
, 그러나 비즈니스 로직에서 num 값의 중복은 허용되지 않습니다.
MySQL이 중복 데이터를 삽입하지 못하도록 제한하는 방법은 무엇입니까?
1. 공동 고유 인덱스를 추가하지만 프로그램에서 실행 불가능해 보이는 오류를 보고합니다.
다른 방법은 없나요?
두 명의 사용자가 동시에 데이터 조각을 삽입합니다.
insert into table set name='tom',num=2
insert into table set name='jack',num=2
, 그러나 비즈니스 로직에서 num 값의 중복은 허용되지 않습니다.
MySQL이 중복 데이터를 삽입하지 못하도록 제한하는 방법은 무엇입니까?
1. 공동 고유 인덱스를 추가하지만 프로그램에서 실행 불가능해 보이는 오류를 보고합니다.
다른 방법은 없나요?
고유 인덱스를 사용하고, 삽입 시나리오에서 트랜잭션 처리를 사용하고, 중복된 값이 있는 경우 트랜잭션 알림을 표시합니다.
프로그램 오류인가요?
해당 예외를 catch한 다음 반환하고 비즈니스 설명을 작성하면 됩니다.
insert ignore
안돼
즉, 각 삽입 전에 테이블의 num 필드에 삽입할 값이 있는지 확인해야 하며 동시성 상황도 고려해야 합니다. 오른쪽? mysql 트랜잭션 또는 mysql 잠금 테이블 메커니즘을 사용하세요
데이터베이스에는 고유한 제약 조건이나 인덱스와 마찬가지로 자체 확인 메커니즘이 있는 것이 좋습니다. 애플리케이션은 데이터베이스의 오류 정보를 캡처하고 해당 설명을 제공할 수 있습니다.