我想从这些旧表中移动数据
restaurant_id | restaurant_nm | more data
bar_id | bar_nm | more data
要
venue_id | venue_nm
我将字段venue_id添加到旧表中 然后我想运行类似这样的查询:
INSERT INTO `venue` (SELECT null, `restaurant_nm` FROM `restaurant`)
然而,在复制时我希望将新的id存储到旧表中。纯粹的mysql有可能吗?
编辑旧餐馆可以是连锁店(多个杂乱的乔),唯一能够100%识别他们的是id
答案 0 :(得分:1)
您可以暂时将旧ID存储在新表中(在额外的列中),然后在旧表上执行UPDATE。这是两行“纯SQL”。
restaurant_id |restaurant_name | v_id
venue_id | venue_name | rest_id
INSERT INTO `venue` (SELECT null, `restaurant_nm`, `restaurant_id` FROM `restaurant`)
然后
UPDATE restaurant r
INNER JOIN venue v
ON r.restaurant_id = v.rest_id
SET r.v_id = v.venue_id
有兴趣了解更优雅的解决方案。