programing

데이터베이스에서 테이블의 마지막 업데이트/삽입/삭제를 찾는 실용적인 방법은 무엇입니까?

linuxpc 2023. 7. 5. 20:30
반응형

데이터베이스에서 테이블의 마지막 업데이트/삽입/삭제를 찾는 실용적인 방법은 무엇입니까?

OS: W10.

이 질문은 특히 "Ver 15.1 Distributed 10.7.3-MariaDB" 버전의 MariaDB에서 가능한 기능에 대한 것입니다.

편집
다른 SO 사이트에서 10.3.4 MariaDB가 실제로 "임시 테이블"을 구현한다는 것을 발견했습니다.이것이 해결책을 제공하는지는 아직 확실하지 않습니다.

데이터베이스에 대해 "마지막으로 수정된" 타임스탬프를 갖는 방법을 구현하려고 합니다. 즉, 발생한 테이블에 관계없이 마지막으로 INSERT 또는 DELETE 또는 UPDATE가 발생한 시간을 표시합니다.제가 이걸 발견했어요, 유망해 보이는...하지만 InnoDB에 대한 몇 가지 의견과information_schema.tables.update_time실험을 하도록 이끌었습니다.

에 대해 일부 지역에서 주장하는 것과는 반대로.update_time항상 존재하는NULLInnoDB 테이블에서, 이것은 제가 가지고 있는 것과 같지 않습니다.유감스럽게도, 이 값이 다음으로 설정된 것에 대한 의견입니다.NULL서버가 시작될 때마다 참으로 나타납니다.

다른 곳에서 저는 바닐라 MySQL에서 벗어나 새로운 버전의 마리아DB가 실제로 어떤 변화의 역사를 구현한다는 것을 읽었습니다.

저는 현재 제가 다음을 구현해야 한다는 가정하에 일하고 있습니다.ON_UPATE전체 데이터베이스에 대한 "마지막으로 수정된" 시간을 결정하기 위해 모든 테이블에 대해 트리거한 다음 각 테이블에 대한 값을 가져오고 가장 최근의 값을 찾습니다.

이 버전의 MariaDB에 다른 가능성이 있습니까?

편집
사실 저는 다른 SO 사이트의 사용 사례에 적합한 답변을 제공했습니다(여기에 답변으로 이 링크를 추가했을 때 답변은 모드에 의해 삭제되었지만 실제로 일부는 유용하다고 생각할 수 있습니다).

모든 테이블 이름과 타임스탬프 열이 있는 테이블을 만듭니다.그 다음에ON_UPATE트리거, 테이블 이름 레코드만 업데이트합니다.

이렇게 하면 타임스탬프가 있는 중앙 테이블이 있습니다. 해킹을 하지 마십시오.

단순하게 받아들여라.

이것을 사용합니다.

언급URL : https://stackoverflow.com/questions/71873469/practical-way-of-finding-last-update-insert-delete-of-any-table-in-a-database

반응형