首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在已经存在的系统上合并标记

如何在已经存在的系统上合并标记
EN

Stack Overflow用户
提问于 2010-10-18 15:47:52
回答 3查看 113关注 0票数 5

我们有一个简单的接口来标记一个特定的问题。

代码语言:javascript
复制
(e.g. entry has 1..many tags and each tag entry has a foriegn key pointer back to the entry table)

1.    What is the current production version of the jdk? (Tags: jdk6 jdk-6 jdk java)
2.    In what version was java.util.spi package introduced? (Tags: jdk-6, jdk7, jdk5)
3.    Which version of java is going to be released soon? (Tags: jdk-6, jdk7, jdk8)

我们希望将所有名为"jdk-6“的标记合并到jdk6中。我们如何在一个正在接近生产但包含有用数据的系统中实现这一点。

在1JDK-6中需要删除,因为jdk6已经存在。在2,3中,jdk-6需要重命名为"jdk6“。

我需要什么样的脚本才能以有效的方式迁移这些数据。

编辑

代码语言:javascript
复制
create table entry (id, question, ...)
create table entry_tag (id, entry_id, tag)
EN

回答 3

Stack Overflow用户

发布于 2010-10-18 16:04:45

我要做以下几点:

使用好的(UPDATE TagTable SET Tag = 'jdk6' WHERE tag = 'jdk-6')

  • Remove更新“坏”标记--重复标记(其中entry_id和标记是相同的)。如何做到这一点将取决于表上是否有单独的唯一键,但快速google将为您提供在不同的circumstances.

  • Assuming下工作的各种方法--您有一个包含所有可用标记列表的TagsList表,从它的(DELETE FROM TagsList WHERE Tag = 'jdk-6').

中删除jdk-6。

票数 2
EN

Stack Overflow用户

发布于 2010-10-18 15:55:02

首先,我将创建一个新表,其中包含包含'jdk-6‘或’jdk 6‘标记的条目ID列表。

然后,我将删除标签'jdk6‘和'jdk-6’的所有标记记录。

然后我将它们添加回使用在开始时创建的表中。

票数 0
EN

Stack Overflow用户

发布于 2010-10-18 16:16:19

代码语言:javascript
复制
/* Step 1 - Delete where both tags exist */
delete from et1
    from entry_tag et1
        inner join entry_tag et2
            on et1.entry_id = et2.entry_id
                and et2.tag = 'jdk6'
    where et1.tag = 'jdk-6'

/* Step 2 - Update remaining tags */
update entry_tag
    set tag = 'jdk6'
    where tag = 'jdk-6'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3960828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档