Я пытаюсь преобразовать оператор Oracle MERGE в оператор MySQL Update. Этот конкретный оператор MERGE выполняет только обновление (без вставок), поэтому неясно, почему предыдущий инженер использовал оператор MERGE.
Несмотря на это, я знаю, что нужно конвертировать это в MySQL, и не ясно, как это сделать. (примечание: я делаю это в приложении JAVA)
Вот оператор MERGE:
MERGE INTO table1 a
USING
(SELECT DISTINCT(ROWID) AS ROWID FROM table2
WHERE DATETIMEUTC >= TO_TIMESTAMP('
formatter.format(dWV.getTime())
','YYYY-MM-DD HH24:MI:SS')) b
ON(a.ROWID = b.ROWID and
a.STATE = 'WV' and a.LAST_DTE = trunc(SYSDATE))
WHEN MATCHED THEN UPDATE SET a.THISIND = 'S';
Мои попытки выглядят примерно так:
UPDATE table1 a
INNER JOIN table2 b ON (a.ROWID = b.ROWID
and a.STATE = 'WV'
and a.LAST_DTE = date(sysdate()))
SET a.THISIND = 'S'
WHERE DATETIMEUTC >= TO_TIMESTAMP('formatter.form(dWV.getTime())', 'YYYY-MM-DD HH24:MI:SS')
Однако мне неясно, действительно ли это делает то же самое или нет?