Я пытаюсь создать один запрос, который обновит несколько строк в таблице, используя метод, описанный здесь: Несколько обновлений в MySQL
По сути, я использую метод INSERT ... ON DUPLICATE KEY UPDATE
, используя запрос типа
INSERT INTO table1
(id, val1, val2)
VALUES
(0, 5, 5)...<etc.>
ON DUPLICATE KEY
UPDATE id=VALUES(id), val1=VALUES(val1), val2=VALUES(val2)
Проблема в том, что на столбец id
ссылаются как на внешний ключ из другой таблицы, поэтому при попытке выполнить этот запрос я получаю ошибку Cannot delete or update a parent row: a foreign key constraint fails
.
Есть ли способ заставить метод INSERT DUPLICATE KEY UPDATE
работать с этим ограничением внешнего ключа (я бы предпочел не отключать ограничение, даже временно), или я застрял, отправляя несколько запросов в мою базу данных?