Любая альтернатива OpenXML и инструкции merge SQL server в mysql
У меня есть тысячи элементов в формате XML. Он состоит из ItemID и ItemName. Мое требование заключается в том, что мне нужно вставить все записи в базу данных в таблице ItemMaster. Если какой-либо из этих элементов уже существует, то он не должен быть вставлен, а должен обновить столбец ModifiedOn в таблице ItemMaster. В настоящее время я использую SQL Server,и с помощью временной таблицы, OpenXML и оператора Merge я могу успешно сделать это в хранимой процедуре.
Моя проблема в том, что я сделал это в MySQL с помощью хранимой процедуры. Зацикливание не требуется. Я понятия не имею, как это сделать, так как у меня не так много знаний о MySQL.
Что я уже пробовал:
Мою процедуру SQL сервера :
declare @XML xml =null,@XMLDOC Int declare @TempTable Table(ItemID int, ItemName nvarchar(50)) EXEC sp_xml_preparedocument @XMLDOC output, INSERT INTO @TempTable(ItemID, ItemName) SELECT UOMID from openXML (@XMLDOC,'NewDataSet/Table1',2) with (ItemID int, ItemName nvarchar(50)) EXEC sp_xml_removedocument @XMLDOC MERGE ItemMaster as Target Using(select ItemID,ItemName FROM @TempTable) as Source ON(Target.Item_ID=Source.ItemID) WHEN MATCHED THEN Update set Target.Item_ModifiedOn=GETDATE() WHEN NOT MATCHED THEN INSERT(ItemName,Item_CreatedOn) Values(Source.ItemName,GETDATE());