我正在尝试重新映射我的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如何适用于这样的事情。任何帮助将不胜感激
答案 0 :(得分: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
等等......