我有两张旧表,想要“同步”(或更好地设置新的)两张新表......就像那样:
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(事件,类别) //没有ID(整数)只有NAME(字符串)
但如何创建INSERT INTO [tbl_new_events]并检查现有的[event] - 和[category] -value?它类似于:
IF(tbl_old_fullevents.event IS NOT IN(tbl_new_events.events)) { INSERT INTO new_events VALUE( NULL, //ID tbl_old_fullevents.event, IF(tbl_old_fullevents.category IN(new_event_categories.categories)) { new_event_categories.id //matched } ELSE { INSERT INTO new_event_categories VALUE ( NULL, //ID old_fullevents.category ); new_event_categories.id //last INSERT-ID } ); }
答案 0 :(得分:1)
使用MERGE
语法。有关示例,请参阅http://technet.microsoft.com/en-us/library/bb510625.aspx。
你不能使用ON DUPLICATE KEY UPDATE
因为那是mysql。