Хорошо, у меня есть функция обновления со странным поворотом.Из-за особенностей структуры я выполняю запрос на удаление, а затем вставляю запрос, а не фактический запрос «Обновление».Они специально запускаются в таком порядке, чтобы новые элементы не были удалены.По сути, элементы удаляются с помощью идентификатора атрибута, который соответствует запросу вставки.Поскольку атрибут не является первичным индексом, «ON DUPLICATE KEY UPDATE» не работает.
Итак, вот дилемма.Во время разработки и тестирования запрос на удаление будет работать без сбоев, но если я использую ввод для запроса INSERT, и он не выполняется, то данные DATA были удалены без повторной вставки, что означает восстановление новых данных теста и дажеХуже того, если произойдет сбой в работе, пользователь потеряет все, над чем работал.
Итак, я знаю, что MySQL проверяет запрос до его фактического выполнения, поэтому можно убедиться, что запрос INSERT проверяетперед выполнением запроса DELETE?
<cfquery name="delete" datasource="DSOURCE">
DELETE FROM table
WHERE colorid = 12
</cfquery>
<!--- check this query first before running delete --->
<cfquery name="insert" datasource="DSOURCE">
INSERT INTO table (Name, ColorID)
VALUES ("tom", 12)
</cfquery>