我有两张旧桌子,想要“同步”(或更好地设置新的)两张新桌子......就像这样:
tbl_old_event_categories (id, title)
tbl_old_events (id, title, cat_id)
tbl_new_event_categories (id, category)
tbl_new_events (event_id, event, category_id)
问题是新表可能已经有值。所以ID会改变(也许)。因为我不能使用 ON DUPLICATE KEY UPDATE。:( 我需要为每条记录单独检查。这些表不是唯一的(我无法更改)。:/
我创建了一个 JOIN 来获取:
tbl_old_fullevents (event, category) //no IDs (integer) only the NAMEs (string)
但是如何通过检查现有的 [event]- 和 [category]- 值来创建 INSERT INTO [tbl_new_events]?它是这样的:
如果(tbl_old_fullevents.event 不在(tbl_new_events.events)){ 插入新事件值( NULL, //ID tbl_old_fullevents.event, 如果(tbl_old_fullevents.category IN(new_event_categories.categories)){ new_event_categories.id //匹配 } 别的 { 插入新事件类别值( NULL, //ID old_fullevents.category ); new_event_categories.id //最后一个 INSERT-ID } ); }