Я написал одну хранимую процедуру в базе данных MySQL следующим образом:правильный способ, чтобы написать хранимую процедуру в MySQL
CREATE PROCEDURE sp_Test(
IN Mode VARCHAR(50),
IN UserID INT,
....
....
)
BEGIN
SET @sqlQuery = "";
IF (Mode = 'Select') THEN
//Select query
ELSEIF (Mode = 'Update') THEN
//update query
ELSEIF (Mode = 'Delete') THEN
//Delete query
END
END
и согласно моей потребности я могу назвать это как этот
CALL sp_Test("Select", 1, ...)
OR
CALL sp_Test("Update", 1, ...)
OR
CALL sp_Test("Delete", 1, ...)
Это нормально для исполнения? Или я должен писать отдельные хранимые процедуры для каждого режима, как
для отборного
CREATE PROCEDURE sp_Test_Select(
IN UserID INT,
....
....
)
BEGIN
//Select query
END
для UPDATE
CREATE PROCEDURE sp_Test_Update(
IN UserID INT,
....
....
)
BEGIN
//Select query
END
спасибо @ ollie-jones, приветствую ваше предложение, кстати, если мой метод прав, то как хранимая процедура предварительно скомпилирована и выполняется быстрее? –
Oracle прекомпилирует хранимые процедуры (из языков PL/SQL и Java). У MySQL нет. У него есть кеш. –
моя хранимая процедура только кэшируется справа. Итак, что относительно подготовленных заявлений в хранимой процедуре? –