Мой вопрос очень прост и в названии. Google и переполнение стека не дают мне ничего, поэтому я решил, что пришло время задать вопрос.Несколько подготовленных заявлений или пакет
Я в настоящее время находится в процессе создания запроса sql, когда пользователи регистрируются на моем сайте. Я ВСЕГДА использовал только подготовленные операторы b/c для дополнительного кодирования в вызываемых операторах, а результат выполнения регулярных операторов отключается. Однако этот запрос заставляет меня думать о возможных альтернативах моему предыдущему одному размеру для всех (подготовленных заявлений) способов.
Этот запрос имеет в общей сложности 4 круглых поездки в базу данных. Этапы:
- Вставьте пользователя в базу данных, верните сгенерированный ключ (их идентификатор пользователя) в результирующий набор.
- Возьмите идентификатор пользователя и вставьте строку в таблицу альбомов. Возврат сгенерированного ключа (id альбома)
- Возьмите идентификатор альбома и вставьте строку в таблицу изображений. Вернитесь сгенерированным ключом (ID изображения)
- Возьмите идентификатор изображения и обновить пользовательские таблицы столбец текущего по умолчанию с ID изображения
сторона: Для тех, кто заинтересован в том, как я получаю ключи обратно после моих вставок это с Statement.RETURN_GENERATED_KEYS
, и вы можете прочитать отличную статью об этом здесь. IBM Article
Так или иначе, я хотел бы знать, подходит ли использование подготовленных заявлений на 4 раунда (но кэшируемых), или если я должен идти с пакетными (но не кэшируемыми) утверждениями?
спасибо. Я отвечу на ваш совет. У вас есть ссылка, где я могу получить некоторые инструкции о том, что вы говорите мне делать? Особенно, как получить сгенерированный ключ и перейти к следующей таблице? Я использую mysql. – gmustudent
И вы должны всегда использовать хранимые процедуры с чисто служебной точки зрения? Разве это не всегда было бы быстрее, чем готовые заявления или регулярные заявления? – gmustudent
@gmustudent Вы можете узнать о хранимых процедурах в MySQL, посмотрев обучающие материалы [здесь] (http://www.mysqltutorial.org/mysql-stored-procedure-tutorial.aspx). Синтаксис не такой сложный - в вашем случае у вас будет четыре вставки и используйте ['last_inserted_id()'] (http://dev.mysql.com/doc/refman/5.0/en/information-functions. html # function_last-insert-id). – dasblinkenlight