Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 插入已更改列的最有效方法&x27;是否将差异值放入具有匹配列的表中?_Mysql_Insert_Unique - Fatal编程技术网

Mysql 插入已更改列的最有效方法&x27;是否将差异值放入具有匹配列的表中?

Mysql 插入已更改列的最有效方法&x27;是否将差异值放入具有匹配列的表中?,mysql,insert,unique,Mysql,Insert,Unique,很难用一句话来回答这个问题。前提是: 我有两张这样的表格: create table TableA( id int, <-- this is a unique ID in TableA but not in TableB value1 int, value2 int, value3 int, value4 int, value5 int, value6 int, update_time DATETIME ) TableA有100000行数据(API响应的最新副本)。API每小时返回Tab

很难用一句话来回答这个问题。前提是:

我有两张这样的表格:

create table TableA(
id int, <-- this is a unique ID in TableA but not in TableB
value1 int,
value2 int,
value3 int,
value4 int,
value5 int,
value6 int,
update_time DATETIME
)
TableA
有100000行数据(API响应的最新副本)。API每小时返回
TableA
中每个ID的新数据,API响应使用每个唯一ID的最新数据更新
TableA
。所有响应都保存到
TableB
,以便随时间进行数据分析(因此每小时将100000行添加到
TableB
)。但是,并非所有数据每小时都会更改。事实上,大部分数据根本没有变化

以下是我将如何构建它: 假设API返回
id=432
的数据,除
value4
外,所有值都相同,
value4
包含505043(而不是当前存储在
id=432
TableA
中的505000)。我想取505043-505000=43并将其存储到
表B

INSERT INTO TableB (id, value6) VALUES (432, 43)
实现这一目标最有效的方法是什么?我最初的想法是将数据从
TableA
检索到PHP
cron
脚本中,计算数据差异(如果有),然后相应地构造insert语句。但是由于这个过程每秒会发生很多次,我想确定我使用的是最有效的方法

提前谢谢

您可以创建一个表,每当在表a中插入或更新一行时,该表就会将一行插入到表B中


当一行插入到另一个表中时,如何使用触发器将一行插入到一个表中。

对于由于某个API返回而更新的表中的所有行,更新时间是否相同?
INSERT INTO TableB (id, value6) VALUES (432, 43)