且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

在MySQL中更新关联表

更新时间:2023-02-07 12:57:23

步骤6&7个可以很容易地组合:

Steps 6 & 7 can be combined easily enough:

DELETE categories.*
FROM categories
LEFT JOIN map USING (catId)
WHERE map.catID IS NULL;

步骤3&4个也可以组合:

Steps 3 & 4 can also be combined:

INSERT IGNORE INTO map (mapId, itemId, catId)
    SELECT CONCAT('1|', c.catId), 1, c.catID
    FROM categories AS c
    WHERE c.catName IN('each','category','name');

否则,您的解决方案是非常标准的,除非您想使用触发器来维护映射表.

Otherwise, your solution is pretty standard, unless you want to use triggers to maintain the map table.