MySQL存储:归档数据的最佳方式

Hen*_*nri 0 php mysql

我在 SQL 领域还是个新手。因此我有一种工作方式的问题。

每周,我都会通过 pHp 代码从 MySQL 数据库上的 Excel 电子表格发送数据。这已经在起作用了。因此我有一个可以更新的表。

实际上,我正在我的数据库上发送特定底层证券的价格。归档我的数据的最佳方法是什么,如下所示。

在我的数据库中,我有以下结构:

tabe t_index
Label = VARCHAR(255)
Price = float
Date = date()
Run Code Online (Sandbox Code Playgroud)

假设我上周在数据库上发送了数据,因此我存储了:

Stock A
102.85
2013-03-18
Run Code Online (Sandbox Code Playgroud)

今天,我想发送相同的新价格Stock A103.54但我想存档并保留102.85价格,以便能够在两个价格之间获得一些回报或任何回报。

我应该如何进行?

我希望我的问题不要太混乱...谢谢你的帮助

Ami*_*mit 5

一种方法是创建一个 UPDATE 触发器,将旧值插入另一个表中。因此,当您更新现有条目时,旧数据将被复制/存档到另一个表。

CREATE TABLE t_index_archive (
Label VARCHAR(255),
Price float,
Date datetime);
Run Code Online (Sandbox Code Playgroud)

现在在现有表上创建一个触发器

DROP TRIGGER IF EXISTS archive_t_index;
DELIMITER $$
CREATE DEFINER = CURRENT_USER TRIGGER archive_t_index BEFORE UPDATE ON t_index
     FOR EACH ROW BEGIN 
          INSERT INTO t_index_archive VALUES (OLD.Label, OLD.Price, OLD.Date);
     END;
$$
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)