【发布时间】:2021-02-10 21:12:38
【问题描述】:
我的源表 TABLE_A 通过某些前端消费者应用程序每小时频繁更新。 我有另一个报表表 TABLE_B,它从 TABLE_A 中获取一些数据。
最初复制通过插入语句手动完成的记录。 现在这需要自动化,其中存储过程/脚本每 1 小时运行一次并复制记录。所以当这个脚本第二次运行时,它不应该复制它在第一次运行时已经复制的记录。 请帮助我如何做到这一点。
TABLE_A:
id date product type
11 2020-10-14 abc T
12 2020-10-16 def P
- - - - - - - - - -- - - - -- - - - -- - - --
13 2020-10-17 ghi K
14 2020-10-18 klm L
15 2020-10-19 abc T
TABLE_B
id date product type
hadgha 2020-10-14 abc T
gsggss 2020-10-16 def P
假设脚本在第一次运行时复制了前 2 条记录,之后记录 13/14/15 已添加到 TABLE_A。现在在第二次运行中,脚本应该将最后 3 条记录从 TABLE_A 复制到 TABLE_B..
【问题讨论】:
-
为什么
tableB中的ids 与tableA中的不同? -
什么定义了重复?
id或product/type? -
表A和表B的id不同,因为它们是完全独立的不同。我需要将几个字段从 tableA 拉到上面显示的 tableB 中。现在这样想 - 这是 10 月到 9 月,我用来获取的数据是通过我曾经使用 phpMyadmin 上传到表 B 中的 csv 文件。现在我必须上传 10 月份的数据,并从这个表 A 中转发所有未来几个月的数据。这个 tableA id 是 PK 和 auto_incremental。 tableB Id 字段与 dnot 增量不同。但是 TableB 有另一个字段 id_temp 是增量的。
-
注意这个tableB id_temp 值和tableA id 值是不同的。就像一个以 1500 开头,另一个以 1 开头。但我愿意在 tableB 中添加任何列以获得解决方案。
-
所以我在考虑存储过程的行,即有一个 temp_table 存储游标数据或类似的东西......我的思路可能完全错误,一个简单的查询可以做这个伎俩。
标签: mysql sql duplicates sql-insert