更新时间: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.