有沒有什麼辦法可以在每次更改一行時設置MySQL,然後使用最初的數據創建一行到另一個表/數據庫? (帶時間戳)MySQL數據版本控制
如果是這樣,我該怎麼做呢?
E.g.
UPDATE `live_db`.`people`
SET `live_db`.`people`.`name` = 'bob'
WHERE `id` = 1;
導致這種更新之前發生:
INSERT INTO `changes_db`.`people`
SELECT *
FROM `live_db`.`people`
WHERE `live_db`.`people`.`id` = 1;
如果你再次做到了這將導致這樣的事情:
`live_db`.`people`
+----+-------+---------------------+
| id | name | created |
+----+-------+---------------------+
| 1 | jones | 10:32:20 12/06/2010 |
+----+-------+---------------------+
`changes_db`.`people`
+----+-------+---------------------+
| id | name | updated |
+----+-------+---------------------+
| 1 | billy | 12:11:25 13/06/2010 |
| 1 | bob | 03:01:54 14/06/2010 |
+----+-------+---------------------+
活DB需要有一個在行上創建時間戳,並且更改數據庫需要有更新實時數據庫行的時間戳。 更改數據庫也將沒有主鍵和外鍵約束。
我使用InnoDB和MySQL 5.1.49,但可以根據需要進行升級。
有關多一點信息,怎麼會是如果在所有可能不錯。 – Petah 2011-02-08 04:14:28
@Petah:在上面的鏈接中有幾個例子。 – 2011-02-08 06:14:41