如果mysql中的数据发生更改,如何在插入新条目时删除旧条目

如果mysql中的数据发生更改,如何在插入新条目时删除旧条目,mysql,sql,database,pentaho,Mysql,Sql,Database,Pentaho,如果数据重复,如何在插入新条目时删除旧条目。在我的例子中,每天晚上都会运行一个作业来插入一条新记录,但当记录发生任何更改时,它会插入一条新记录,而不是删除旧记录 SELECT op.order_product_id, op.order_id, o.date_added as booking_date, o.date_modified, o.order_status_id as order_status, REVERSE(SUBSTRING_INDEX(REVERSE(op.resource),

如果数据重复,如何在插入新条目时删除旧条目。在我的例子中,每天晚上都会运行一个作业来插入一条新记录,但当记录发生任何更改时,它会插入一条新记录,而不是删除旧记录

SELECT
op.order_product_id,
op.order_id,
o.date_added as booking_date,
o.date_modified,
o.order_status_id as order_status,

REVERSE(SUBSTRING_INDEX(REVERSE(op.resource), '/' , 1)) as entity_id,
op.name as stay_name,
CASE WHEN op.legacy_product_id IS NULL THEN op.product_id ELSE op.legacy_product_id END as legacy_product_id,
op.total as stay_amount

FROM opencart.order_product op
LEFT JOIN opencart.order o ON o.order_id = op.order_id
LEFT JOIN opencart.order_option ot ON ot.order_id = op.order_id AND ot.name = 'Anzahl der Personen'

where op.product_id NOT IN (2,3,5)
AND o.order_status_id IN (5,7)

AND DATE(o.date_modified) >= current_date() - INTERVAL 3 DAY 
AND DATE(o.date_modified) < current_date()

GROUP BY 1
选择
op.order\U product\U id,
op.order_id,
o、 日期添加为预订日期,
o、 修改日期,
o、 订单状态标识为订单状态,
反向(子字符串索引(反向(op.resource),“/”,1))作为实体id,
op.name作为stay_name,
如果op.legacy_product_id为NULL,则op.product_id ELSE op.legacy_product_id以legacy_product_id结束,
op.总计作为停留金额
来自opencart.order\u产品op
在o.order\u id=op.order\u id上左键加入opencart.order
在ot.order\u id=op.order\u id和ot.name='Anzahl der Personen'上左键加入opencart.order\u选项ot
其中op.product_id不在(2,3,5)中
和(5,7)中的订单状态id
和日期(o.DATE_modified)>=当前日期()-间隔3天
日期(o.DATE_modified)<当前日期()
按1分组

我不确定我是否理解您的观点,因为您显示了一个SELECT请求,并谈到了更新数据。
我的猜测是,在这个选择之后,您只需使用INSERT而不是UPDATE。你应该快速浏览一下这个链接,你应该可以做你想做的事情

我在你的问题中看不到任何插入查询。您可能想检查一下您的问题?这是每天晚上在Pentaho工具中运行的作业查询,它是一个选择查询:它选择一些记录。它不插入任何内容,也不更新任何内容。所以这并没有引起你的问题,当然,我知道这并没有引起任何问题。当通过pentaho插入时,其插入没有移除旧的。我想知道如何实现如果它没有引起任何问题,你的问题是关于什么的。我想在插入新数据之前,如果有重复的数据,它应该删除旧数据。我如何实现这种类型的查询?我不理解问题人。。。如果数据A=数据B,那么它是否保持不变或删除又有什么关系?我们有两个数据库,我们将所有数据从一个数据库提取到另一个数据库,两天后客户更改预订日期,它不会在第二个数据库中更新。它作为新列插入,而不会删除旧列。“在第二个数据库中,它不能通过设置主键来实现,因为每当预订日期更改时,它都会创建一个新的订单\产品\ id”。@DineshGhule我应该在哪里应用条件?这是通过Pentaho(etl工具)完成的插入查询。