>데이터 베이스 >MySQL 튜토리얼 >MySQL에서 커밋될 때까지 참조 무결성 검사를 연기할 수 있습니까?

MySQL에서 커밋될 때까지 참조 무결성 검사를 연기할 수 있습니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-09 20:28:02352검색

Can Referential Integrity Checks Be Deferred Until Commit in MySQL?

MySQL에서 참조 무결성 검사를 커밋 전까지 연기할 수 있나요?

MySQL에서는 참조 무결성 검사가 트랜잭션 커밋까지 연기되지 않고 즉시 수행됩니다. . MySQL 문서에 강조된 이 제한 사항은 외래 키를 사용하여 자신을 참조하는 레코드를 삭제하는 등의 특정 작업을 방지합니다.

참조 무결성 검사를 연기하는 문제는 이전에 제기된 적이 있습니다. PoEAA 질문을 참조했습니다. 단일 트랜잭션 내에서 여러 관련 테이블에 데이터를 삽입할 때 문제가 발생합니다. 즉각적인 참조 무결성 검사로 인해 조인 테이블에 삽입을 시도할 때 제약 조건 오류가 발생할 수 있습니다.

SQL 표준에 따르면 제약 조건 검사는 연기되어야 합니다. 그러나 MySQL의 기본 스토리지 엔진인 InnoDB는 현재 SQL 문 중에 행별로 이를 적용합니다. 즉, 참조 레코드 또는 상위 레코드에 공유 행 수준 잠금을 설정하여 트랜잭션이 진행되지 않도록 합니다.

따라서 InnoDB를 스토리지 엔진으로 사용하는 MySQL에서는 현재 커밋이 불가능할 때까지 참조 무결성 검사를 연기합니다. 이러한 제한으로 인해 특정 데이터베이스 작업에 문제가 발생하며 데이터베이스 스키마를 설계할 때 신중한 고려가 필요합니다.

위 내용은 MySQL에서 커밋될 때까지 참조 무결성 검사를 연기할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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