programing

데이터베이스에서 테이블의 마지막 업데이트 시간 가져오기

minimums 2023. 8. 16. 22:05
반응형

데이터베이스에서 테이블의 마지막 업데이트 시간 가져오기

백업이 필요한지 여부를 결정하기 위해 데이터베이스에 있는 테이블의 마지막 업데이트 시간(또는 마지막으로 변경된 시간)을 확인해야 합니다.MySQL/MariaDB 설명서에 따라 데이터베이스에서 테이블의 마지막 수정 시간을 얻기 위해 다음 SQL 문을 사용했습니다.

SELECT update_time FROM information_schema.tables WHERE table_schema='my_db' and table_name='my_table'; -- For table named 'my_table' in database 'my_db'

문제는 다음과 같습니다.결과값update_time필드는 항상 반환됩니다.NULL지정된 테이블에 변경 사항이 있더라도.더욱 예상치 못한 것은 수동으로 검색할 때tables의 테이블information_schema데이터베이스, 항목이 없습니다.my_db그리고.my_tabletable_schema그리고.table_name각 필드. 즉, 활동이 기록되지 않습니다.누가 제가 이 문제를 해결하고 그 이유를 설명하는 것을 도와주실 수 있나요?

편집: 이 질문은 다음 필드에 대해서도 질문하므로 중복되지 않습니다.information_schema.tables존재NULL마지막 업데이트 시간을 얻는 방법을 묻는 것보다.

테이블에 기본값과 GETDATE()가 포함된 UpdateedDate 또는 ModifiedDateDate 열이 포함된 경우.그는 그것을 이용해야 합니다.자세히 관찰하면 테이블은 행이 삽입될 때 기록을 보관할 필요가 없습니다.그러나 유일한 전제 조건은 테이블이 업데이트된 시점을 인식하는 것입니다.다 됐다! 더 이상 어쩔 수 없다!사용자가 마지막으로 테이블이 업데이트된 날짜를 확인하려면 동적 관리 보기(dmv) – sys.dm _db_index_dll_dll_dll을 쿼리하여 테이블이 마지막으로 업데이트된 날짜를 쉽게 확인할 수 있습니다.테이블을 만들고 업데이트하여 이 예제를 이해해 보겠습니다.dmv를 사용하여 마지막으로 업데이트된 날짜를 확인할 수 있습니다.

SELECT OBJECT_NAME(OBJECT_ID) AS DatabaseName, last_user_update,*
FROM sys.dm_db_index_usage_stats
WHERE database_id = DB_ID( 'AdventureWorks')
AND OBJECT_ID=OBJECT_ID('test')

테이블 테이블의 INFORMATION_SCHEMA 데이터베이스에서 쿼리 브라우저 또는 CLI로 쿼리하여 현재 데이터베이스 크기를 가져옵니다.

SELECT table_schema "Data Base Name", 
    sum( data_length + index_length ) / 1024 / 1024 "Data Base Size in MB" 
    FROM information_schema.TABLES 
    GROUP BY table_schema ;

데이터베이스의 마지막 업데이트를 작성 시간이 아닌 업데이트 시간 순으로 정렬합니다.

SELECT MAX(UPDATE_TIME), MAX(CREATE_TIME), TABLE_SCHEMA 
FROM `TABLES` 
GROUP BY TABLE_SCHEMA 
ORDER BY 1, 2;

언급URL : https://stackoverflow.com/questions/44159096/fetching-the-last-update-time-of-a-table-in-database

반응형