а второй insert select, который требует, чтобы данные из первого insert'а уже были в таблице (там inner join с ней). можно ли в общем случае заставить первый insert выполниться синхронно?
Конечно можно, комрад! Асинхронно!
Если это будет в одном пакете, то, наверное, они и будут выполняться последовательно.
Браво! А если другие варианты?
может ли быть ситуация, когда данные из первого инсерта еще не записались, а второй уже их ищет в подзапросе select и не находит?
Я предложил решение. То есть можно попробовать запихивать такие запросы в один пакет. Других решений у меня нет :))
комрад, ты мне и моей систре по 100р отправил
вероятно, я вообще неверно подхожу к задаче. суть в том, что первый insert вставляет данные о кликах, а второй - о конверсиях по этим кликам. причем строка конверсии вставляется так: в таблице сперва ищется сам клик (по click_id), с которого пришла конверсия, из него берутся все его поля, кроме нескольких, которые переписываются данными конверсиями, и уже такая совмещенная из двух строк итоговая строка пишется в таблицу.
Делайте это на уровне своего приложения. КХ здесь не поможет, так как нет никаких гарантий, что сохранится очередность запроса. Также не факт, что при пакетной вставке запрос будет иметь доступ к записям, которые были вставлены в этом же пакете.
так оно сейчас и делается, но уж больно убогий код в самом приложении
Обсуждают сегодня