我想知道是否有办法可以在mysql中更新记录 仍然能够保留记录的先前(更新前)数据,并保留更新历史记录计数器。
我应该能够将最后更新的记录用作真实记录。
帮助表示赞赏。
感谢。
答案 0 :(得分:2)
我认为您不需要更新记录,而是Insert
另一条记录,这样您之前的记录就不会受到影响。
更新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');