MySQL合并标签记录

标签 mysql sql database merge tags

我有一个具有多种关系的标签系统。有时有类似的标签应该合并为一个。

让我们将 tagA 称为应该合并的标签,然后消失,将 tagB 称为现在将采用 tagA 关系的标签。

为了澄清,我需要的是:以前与 tagA 相关的每个实体现在都与 tagB 相关,然后删除 tagA。

基本结构是这样的:

tag
---------------
tag_id

description



tag_news
---------------
tag_news_id

tag_id

news_id



tag_pages
---------------
tag_pages_id

tag_id

pages_id

等等...

我知道我可以简单地:

1) 更新与“标签”表相关的所有表,将 tagA 的 id 更改为 tagB 的 id。

2) 从“标签”表中删除 tagA。

但是与标签系统的关系不断增加,我想要一个不需要通知查询中正在更新的每个表的解决方案。

我想过使用 UPDATE 级联,但我无法在“tag”表中更新 tagA 的 id 为 tagB 的 id,因为我将以具有相同主键的两条记录结束。

关于如何实现这项工作有什么想法吗?

非常感谢。

最佳答案

关于: 1.插入TagB作为新标签; 2.更新所有表,将TagA更改为TagB; 3.从Tags表中删除TagA

关于MySQL合并标签记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33757502/

相关文章:

mysql - 连接具有相同列的两个表的结果避免重复

php - SQL : many Many MANY tables vs one huge table? 哪个更快

mysql - Openshift:如何通过 RHC 或 SSH 将数据库导入 MySQL?

c# - 使用 LINQ 高效配对时间相关记录

php - 从序列化数组 MySQL 中检索特定值

MySQL Visual Studio 2015 无法为所选对象创 build 计窗口

java - 如何在hibernate中创建数据并添加到表3而不向表1和表2添加数据

sql - SQL 数据库表中的多态性?

java - 在 Hibernate/JPA 映射中自动为列名添加特定于表的前缀?

python - 数据被插入到 MySQL 但不是永久的 - Python