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