У меня есть рабочая вставка, идущая в DB2 с использованием параметров PHP в скрипте.Это работает так, как я хочу для isnert, но я пытаюсь исправить это, чтобы мне не приходилось урезать и перестраивать каждый раз.Я хотел бы просто обновить свои последние 2 поля, если мои уникальные ключевые поля уже существуют.
Вставка:
INSERT INTO testSchema.metrics (cust, item, material, color, group, group2, sales, score )
VALUES (
:cust_id,
:item,
:material,
:color,
:group,
:group2,
:sales,
:score
)
У меня есть ограничение уникального ключа для cust_id, item, material ицвет, поэтому я пытаюсь сделать UPSERT в основном, но в DB2.
Я знаю, что могу использовать MERGE в DB2, и я начал здесь, но я просто запутался в том, как конкретизировать этоиз-за того, что я использую параметры из скрипта.
вот мое слияние псевдо:
MERGE INTO testSchema.metrics as m
USING // I guess I would need all of my parameters here?
ON :cust_id, :item, :material, :color
WHEN MATCHED THEN
UPDATE SET sales = :sales, score = :score
WHEN NOT MATCHED THEN
INSERT (cust, item, material, color, group, group2, sales, score )
VALUES (
:cust_id,
:item,
:material,
:color,
:group,
:group2,
:sales,
:score
);
Я чувствую, что это основная идея, но я запутался, как исправить USINGи ON строки для параметров.
Я просто пытаюсь сказать (если строка соответствует cust_id, номенклатуре, материалу и цвету, то обновиться с новыми продажами и оценками. Иначе, вставить)