MySQL에서 참조 무결성 검사를 커밋 전까지 연기할 수 있나요?
MySQL에서는 참조 무결성 검사가 트랜잭션 커밋까지 연기되지 않고 즉시 수행됩니다. . MySQL 문서에 강조된 이 제한 사항은 외래 키를 사용하여 자신을 참조하는 레코드를 삭제하는 등의 특정 작업을 방지합니다.
참조 무결성 검사를 연기하는 문제는 이전에 제기된 적이 있습니다. PoEAA 질문을 참조했습니다. 단일 트랜잭션 내에서 여러 관련 테이블에 데이터를 삽입할 때 문제가 발생합니다. 즉각적인 참조 무결성 검사로 인해 조인 테이블에 삽입을 시도할 때 제약 조건 오류가 발생할 수 있습니다.
SQL 표준에 따르면 제약 조건 검사는 연기되어야 합니다. 그러나 MySQL의 기본 스토리지 엔진인 InnoDB는 현재 SQL 문 중에 행별로 이를 적용합니다. 즉, 참조 레코드 또는 상위 레코드에 공유 행 수준 잠금을 설정하여 트랜잭션이 진행되지 않도록 합니다.
따라서 InnoDB를 스토리지 엔진으로 사용하는 MySQL에서는 현재 커밋이 불가능할 때까지 참조 무결성 검사를 연기합니다. 이러한 제한으로 인해 특정 데이터베이스 작업에 문제가 발생하며 데이터베이스 스키마를 설계할 때 신중한 고려가 필요합니다.
위 내용은 MySQL에서 커밋될 때까지 참조 무결성 검사를 연기할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!