0

我正在尝试重新映射我的 mysql 数据库中的一些数据。

我想将一个名为的表中的内容移动category_article到另一个名为article_tag.

我想移动一个字段 ( article_id) 并添加我自己的数据tag_id

我目前有:

INSERT INTO article_tags (tag_id, article_id)
SELECT 3, article_id
FROM category_article
WHERE category_id = '7';

显然我知道'3'在这种情况下是错误的,所以也许我需要将它设置为一个变量?

我不确定mysql如何处理这样的事情。任何帮助,将不胜感激

4

1 回答 1

0

如果您愿意,并且需要复制大量数据,可以使用以下方法:

创建一个将为您执行数据插入的存储过程:

CREATE PROCEDURE `Copy_From_Category_Article_To_Article_Tag`
(
      IN prm_tagid INT
    , IN prm_category_id VARCHAR(10)
)
BEGIN
    INSERT INTO article_tags (tag_id, article_id)
    SELECT prm_tagid, article_id
    FROM category_article
    WHERE category_id = prm_category_id;
END

然后使用要复制的记录的标签 ID 和类别 ID 的参数执行它:

CALL Copy_From_Category_Article_To_Article_Tag(3, '7');

如果您愿意,上面的语句可以按顺序执行多次:

CALL Copy_From_Category_Article_To_Article_Tag(3, '7'); -- copy category 7 to tag 3
CALL Copy_From_Category_Article_To_Article_Tag(5, '1'); -- copy category 1 to tag 5
CALL Copy_From_Category_Article_To_Article_Tag(9, '4'); -- copy category 4 to tag 9

等等...

于 2011-11-29T16:15:55.103 回答