[英]Append data from one table to another table
我有一个包含 3 列的目标表,ID、名称、源。 我有 10 多个源表,每个表都有多个列,但我只需要将 ID、名称和表名本身附加到目标表中。 请注意,每个表中列名的命名不同,但所需的 ID 和 Name 是相同的数据类型,并且对于 ID 和 Name 字段来说足够长。
我已经有了添加数据的查询(见下文),第一次运行将所需数据添加到目标表中没有问题,因为我只需要对每个表进行一个查询,下面是我的代码
INSERT INTO dest_table
SELECT ID, Name, 'source_table' as Source
FROM source_table
现在的问题是我需要安排它每天运行。 我想将源表 append 将它们的新数据添加到目标表中,而不是将每个源表中的所有记录添加到目标表中。
要考虑的另一个条件是,我仍然需要目标表中的数据保持完整。 这意味着从源表中删除的任何记录都不会从目标表中删除。
感谢人们!
您可以使用WHERE
子句排除旧数据,如下所示。 我假设此表中的 ID 在所有表中是唯一的,您需要在目标表中添加另一列以识别此 ID 的来源
INSERT INTO dest_table
SELECT ID, Name, 'source_table' as Source FROM source_table
WHERE NOT EXISTS (SELECT 1 FROM dest_table dt WHERE dt.id = source_table.id)
另一种非最佳方法是在源表中插入时创建触发器并将数据推送到目标表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.