mysql에서 레코드를 업데이트 할 수있는 방법이 있는지 알고 싶습니다. 레코드의 이전 (업데이트 전) 데이터를 유지하면서 계속 유지할 수 있는지 확인하고 싶습니다. 업데이트 이력 카운터.레코드를 업데이트하고 mysql에 이전 레코드 데이터를 보관하십시오.
실제 레코드로 마지막 업데이트 된 레코드를 사용할 수 있어야합니다.
감사합니다.
감사합니다.
mysql에서 레코드를 업데이트 할 수있는 방법이 있는지 알고 싶습니다. 레코드의 이전 (업데이트 전) 데이터를 유지하면서 계속 유지할 수 있는지 확인하고 싶습니다. 업데이트 이력 카운터.레코드를 업데이트하고 mysql에 이전 레코드 데이터를 보관하십시오.
실제 레코드로 마지막 업데이트 된 레코드를 사용할 수 있어야합니다.
감사합니다.
감사합니다.
레코드를 업데이트 할 필요가 없다고 생각하지만 대신 Insert
다른 레코드가 있으므로 이전 레코드는 변경되지 않습니다.
UPDATE 1
이 두 테이블을 작성해야합니다. 첫 번째는 data
이고 다른 하나는 레코드를 유지하는 테이블입니다. 예 :
CREATE TABLE dataList
(
ID INT NOT NULL,
Name VARCHAR(30),
-- other fields... ,
CONSTRAINT dl_pk PRIMARY KEY ID)
);
CREATE TABLE versionList
(
ID INT AUTO_INCREMENT,
DataID INT,
VersionID INT,
DateChanged datetime,
CONSTRAINT vl_pk PRIMARY KEY (ID),
CONSTRAINT vl_fk FOREIGN KEY (DataID)
REFERENCES dataList(ID)
);
INSERT INTO dataList(ID, Name) VALUES (1,'hello');
INSERT INTO dataList(ID, Name) VALUES (2,'world');
INSERT INTO versionList(DataID, VersionID, DateChanged) VALUES (1,1,'2011-01-01');
INSERT INTO versionList(DataID, VersionID, DateChanged) VALUES (1,2,'2011-02-01');
INSERT INTO versionList(DataID, VersionID, DateChanged) VALUES (1,3,'2011-03-01');
INSERT INTO versionList(DataID, VersionID, DateChanged) VALUES (2,1,'2012-01-01');
INSERT INTO versionList(DataID, VersionID, DateChanged) VALUES (2,2,'2012-02-01');
업데이트를 유지하려는 경우 업데이트가 작동하지 않습니다. 업데이트는 이전 데이터를 덮어 쓰기 때문에 삽입이 필요합니다. 필자는 레코드 생성의 datetime 필드 'Timestamp'를 추가하는 것이 좋습니다. 이렇게하면 실제 기록은 가장 높은 시간 기록을 가진 기록입니다. 오래된 것들은 역사입니다. 하나의 필드가 변경되는 작은 테이블에이 방법을 사용했습니다. 데이터 중복을 고려한 더 큰 테이블에 대한 최선의 접근 방식이 아닐 수도 있습니다. – Hazaart
고맙습니다. 더 큰 테이블에 대해 무엇을 제안 하시겠습니까? – watkib