반응형
스키마 변경을 추적하는 시스템 버전 테이블 생성
최근에 이 기능을 실험했는데 잘 작동하지만 스키마 변경 내용도 저장될 것으로 예상했습니다.
다음을 달성할 수 있는 방법이 있습니까?
CREATE table test (id INT NOT NULL, field_1 VARCHAR(10)) ENGINE=InnoDB;
ALTER TABLE test ADD SYSTEM VERSIONING;
INSERT INTO test (id, field_1) VALUES (1, "test");
SELECT NOW(); -> 2022-02-03 22:48:56
ALTER TABLE test DROP COLUMN field_1;
SELECT NOW(); -> 2022-02-03 22:58:56
SELECT * FROM test FOR SYSTEM_TIME AS OF TIMESTAMP '2022-02-03 22:48:56';
+----+---------+
| id | field_3 |
+----+---------+
| 1 | test |
+----+---------+
SELECT * FROM test FOR SYSTEM_TIME AS OF TIMESTAMP '2022-02-03 22:58:56';
+----+
| id |
+----+
| 1 |
+----+
스토리지 크기에 문제가 있을 수 있다는 것은 알고 있지만 MariaDB/mysql을 사용한 스키마 변경을 포함한 완전한 이력을 얻을 수 있는 방법이 있습니까?그렇지 않은 경우 다른 데이터베이스로 사용할 수 있는 데이터베이스가 있습니까?
SQL 데이터베이스 정의: 데이터베이스 앱을 개발하는 많은 사람들이 오랫동안 꿈꿔왔던 것입니다.
안타깝게도 시스템 버전 표에는 없습니다.아직.
메모리(RAM 및 SSD)의 가격이 점점 낮아지고 있기 때문에 가능한 일입니다.기술이 아닌 가상 시스템 스냅이 해답의 일부일 수 있습니다.
MariaDB에는 상당히 강력한 데이터베이스 서버와 스토리지 엔진 인터페이스가 있습니다.InnoDB를 복제하여 시간 차원의 스토리지 엔진을 만들 수 있습니다.
누군가는 이걸 할 거야너일 수도 있어.
언급URL : https://stackoverflow.com/questions/70979471/create-system-version-table-that-tracks-schema-changes
반응형
'programing' 카테고리의 다른 글
텍스트 파일(.py)을 IPython 노트북 셀에 로드/편집/실행/저장하는 방법 (0) | 2023.01.14 |
---|---|
지원되지 않는 조작java.util의 예외입니다.Abstract List.add (0) | 2023.01.14 |
Moment.js를 사용하여 날짜에서 시간을 제거하려면 어떻게 해야 합니까? (0) | 2023.01.14 |
SELECT를 사용하여 여러 개 삽입 (0) | 2022.12.20 |
특정 문자 뒤에 있는 모든 항목 제거 (0) | 2022.12.20 |