У меня есть таблица с тремя столбцами (все числовые) с полями CustID (не уникальными), ProdID (не уникальными) и Price. Единственная «уникальность» заключается в том, что никакая пара CustID/ProdID не дублируется. Таким образом, каждый клиент имеет разные «цены» для каждого продукта. Я использую трехлинейный метод. (a) найдите, существует ли пара, (b) если да, я обновляю цену, (c) если нет, я вставляю новую пару с ценой. Я еще не создал индексы для идентификатора (он работает нормально для целей dev.)MySql Обновить поле или Вставить, если не существует, первичный ключ
Может ли кто-нибудь предложить способ использования инструкции REPLACE, большинство примеров INSERT/ON DUPE, по-видимому, подразумевают, что необходим первичный ключ. Обычно у меня всегда есть pk, просто казался расточительным для этого требования. Огромное спасибо всем, кто со временем поможет мне. Ken Ashton
Извините, Майкл, вы уже дали мне пример. Я сейчас получаю голоса, огромное спасибо ребятам
Вы действительно должны создать уникальный индекс для 'CustID/ProdID', а не для целей производительности, для поддержания целостности. –
'CREATE INDEX idx_unique_custprod ON tblname (CustID, ProdID)' –
Или еще лучше создать их как PK: 'ALTER TABLE tblname ADD PRIMARY KEY (CustID, ProdID)' –