Суть в том, что со временем вы можете изменить таблицы, например, добавить в них новые колонки, а это значит, что все запросы, написанные таким образом, просто перестанут работать, и вам придется менять их по всему приложению. Так что забудьте об этом методе навсегда. Я привел его только для того, чтобы вам не пришлось этого делать. Их может быть больше. Обычно всегда можно найти решение и разделить один большой запрос на несколько маленьких и вставить, например, не больше строк за один цикл. Предположим, что у нас есть еще одна таблица table2, которая имеет ту же структуру, что и первая.
Нам нужно вставить все строки из таблицы table1 в таблицу table2. Но теперь представим, что мы хотим вставить только те строки из таблицы1, у которых столбец "c" равен четвертому столбцу в таблице2. Чтобы выйти из этой ситуации, нам нужно передать какое-то подходящее значение в этот дополнительный столбец. Это чисто абстрактная задача, поэтому давайте передадим только одно.
В зависимости от ситуации, мы можем выбрать разное поведение при совпадении значений уникальных столбцов. Другими словами, если ключ совпадает, мы просто обновим столбец "с", а остальные столбцы оставим нетронутыми.
Иногда нам необходимо обновить все значения при совпадении ключа. Вставка блокирует строки, и если два INSERT требуют блокировки одних и тех же строк для выполнения, вы можете захотеть дать некоторым запросам более высокий или более низкий приоритет, чем другим.
Ждём с нетерпением.
Вы ошибаетесь. Могу это доказать. Пишите мне в PM.