>  기사  >  백엔드 개발  >  mysql 삽입 문제

mysql 삽입 문제

WBOY
WBOY원래의
2016-08-20 09:04:001030검색

두 명의 사용자가 동시에 데이터 조각을 삽입합니다.
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 잠금 테이블 메커니즘을 사용하세요

데이터베이스에는 고유한 제약 조건이나 인덱스와 마찬가지로 자체 확인 메커니즘이 있는 것이 좋습니다. 애플리케이션은 데이터베이스의 오류 정보를 캡처하고 해당 설명을 제공할 수 있습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.