更新记录并将以前的记录数据保存在mysql中

时间:2012-09-24 08:15:18

标签: mysql logging sql-update

我想知道是否有办法可以在mysql中更新记录 仍然能够保留记录的先前(更新前)数据,并保留更新历史记录计数器。

我应该能够将最后更新的记录用作真实记录。

帮助表示赞赏。

感谢。

1 个答案:

答案 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');