집 >데이터 베이스 >MySQL 튜토리얼 >MySQL에서 레코드 변경 사항을 효율적으로 추적하고 쿼리하려면 어떻게 해야 합니까?
MySQL의 레코드 변경 내역 유지
MySQL 사용자는 종종 데이터베이스의 레코드 변경 사항을 추적하는 딜레마에 직면합니다. 이는 데이터 무결성을 보장하거나, 감사 추적을 제공하거나, 우발적인 수정 사항을 복구할 때 특히 중요합니다. 이 문제를 효과적으로 해결하기 위해 효율적이고 간단한 솔루션을 살펴보겠습니다.
트리거를 사용하여 기록 테이블 생성
제안된 접근 방식에는 생성하려는 각 데이터 테이블에 대한 기록 테이블을 생성하는 것이 포함됩니다. 추적하고 싶습니다. 이 기록 테이블은 해당 데이터 테이블의 구조를 미러링하여 작업(삽입, 업데이트 또는 삭제)을 나타내는 'action', 순서 지정을 위한 'revision', 작업의 타임스탬프를 캡처하는 'dt_datetime'이라는 세 개의 추가 열을 추가합니다.
이력을 유지하기 위해 데이터 테이블에 트리거를 설정합니다. 삽입, 업데이트 또는 삭제 작업 시 트리거는 기록 테이블에 새 행을 삽입하여 변경된 필드의 이전 값과 새 값과 함께 관련 정보를 캡처합니다. 시퀀싱 목적으로 MyISAM 엔진을 사용한다는 점은 주목할 가치가 있습니다.
기록 레코드 쿼리
특정 레코드의 기록을 보려면 기록 테이블을 기본 키 열의 데이터 테이블. 개정 번호를 필터링하면 특정 개정을 검색하거나 특정 열에 대한 시간 경과에 따른 변경 사항을 표시하는 보기를 생성할 수 있습니다.
예
테이블이 있다고 가정합니다. 'ID', '이름', '수량' 열이 있는 '제품'이라고 합니다. 이 테이블의 변경 사항을 추적하기 위해 추가 'action', 'revision' 및 'dt_datetime' 열이 있는 'Products_History'라는 해당 기록 테이블을 생성합니다.
트리거를 설정한 후 삽입, 업데이트 , 또는 'Products'에 대한 삭제 작업은 'Products_History'에 기록됩니다. 그런 다음 'ID' 열에서 이 두 테이블을 결합하여 해당 제품의 변경 내역을 볼 수 있습니다.
이점
위 내용은 MySQL에서 레코드 변경 사항을 효율적으로 추적하고 쿼리하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!