Я пытаюсь сделать CREATE PROCEDURE IF NOT EXISTS
в MySQL. Однако похоже, что MySQL не поддерживает это, что похоже на большой надзор для меня.Как проверить, существует ли хранимая процедура, прежде чем пытаться создать ее в MySQL?
Я создал приложение Spring Batch Java, которое содержит определения бизнес-схемы, которое включает определения таблиц и определения хранимых процедур. Определения таблиц прекрасны, так как они говорят CREATE TABLE IF NOT EXISTS
. Я хотел бы, чтобы определения хранимой процедуры были одинаковыми, так как этот сценарий бизнес-схемы будет запускаться в любое время при запуске приложения.
У MySQL есть DROP PROCEDURE IF EXISTS
, но я беспокоюсь, что выполнение этого до создания запускается в возможное состояние гонки. Что делать, если у меня есть несколько экземпляров этого приложения, и один из других экземпляров запускает одну из хранимых процедур, когда я делаю DROP и последующий CREATE? Это похоже на плохую идею. Я не хочу, чтобы он прерывал что-то уже запущенное.
Кому-то еще пришлось столкнуться с этой же проблемой. Какое решение?
рытье, нашел, справки MySQL вопрос, до сих пор рытье http://www.codeofhonor.com/blog/a-better-way-to-update-sql-хранимые процедуры – Drew