gpt4 book ai didi

导入数据期间的 SQL 更新

转载 作者:行者123 更新时间:2023-11-29 13:50:41 26 4
gpt4 key购买 nike

我有以下格式的示例数据,其中包含 ID 和名称。名称是唯一值。这里我们可以导入数据。但是在导入过程中,可能会在 sql 查询中查询给定的是否已经存在,然后使用带有增量值的旧后缀更新名称以及后缀。

  1. 在下面的数据中,因为 Jack 已经存在,所以在导入期间我需要将其更新为 Jack_old1 并将新数据导入为具有不同 ID 的 Jack。

  2. 在下面的数据中,因为 Sino 已经存在,所以在导入过程中我需要将其更新为 Sino_Old2,并将新数据导入为具有不同 ID 的 Sino。

ID   Name
-- ------
1 Jack
2 Smith
3 Sino_Old1
4 Sino

上面的逻辑是否可以通过sql查询和update查询来实现,因为java处理时间比较长。

最佳答案

我认为您可以解决在重复的情况下尝试更改名称的丑陋之处。修改您的表以具有时间戳列:

ID | Name  | insert_time
1 | Jack | '2017-01-12 14:00:00'
2 | Smith | '2017-01-12 14:00:00'
3 | Sino | '2017-01-12 14:00:00'

现在如果插入另一个Jack 记录,只需插入新数据而不更改名称:

ID | Name  | insert_time
1 | Jack | '2017-01-12 14:00:00'
2 | Smith | '2017-01-12 14:00:00'
3 | Sino | '2017-01-12 14:00:00'
4 | Jack | '2017-01-12 14:23:15'

如果想要最新的Jack记录,可以使用如下查询:

select *
from yourTable
where Name = 'Jack' AND
Timestamp = (select max(Timestamp) from yourTable where Name = 'Jack')

也可以编写查询来获取第二旧、第三旧等记录。

关于导入数据期间的 SQL 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41606116/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com