/ / Дали изявление SELECT има смисъл в MySQL съхранена ПРОЦЕДУРА? mysql, sql, процедура, out, inout

Дали изявление SELECT има смисъл в MySQL съхранена ПРОЦЕДУРА? mysql, sql, процедура, out, inout

Моята система: MySQL 5.6.12

Тъй като не можете да използвате процедура за съхранение в SQLизявление като функция, аз съм се чудех дали има някаква употреба за запомнени процедури, които просто имат изявление SELECT, но не OUT / INOUT параметър или някои манипулации.

Пример:

DELIMITER //
CREATE PROCEDURE sp ()
BEGIN
SELECT * FROM tbl;
END //
DELIMITER ;

Мога да се обадя на запомнената процедура по следния начин:

CALL sp();

и показва резултата, определен в IDE, но освен това не мога да видя никаква практическа употреба за това.

Изпускам ли нещо?

Отговори:

0 за отговор № 1

Всичко, което прави, е да преместите данните от заявката далеч от обаждащия се (което е валидно нещо да направите, опростява кода на клиента и улеснява миграцията на схемата). Можете също така да използвате изглед за това.

Аз ще отида само за запомнени процедура, ако трябва да се параметри.


0 за отговор № 2

Добре, просто изявление SELECT го бута; но има много основателни причини за съхраняваните без параметри процедури, които връщат резултатите. Отговорът на Thilo споменава основния, за да подобри това ...

Ако често има определен резултат(като например данни от мониторинг / табло за управление), но твърде сложни, за да се впишат в VIEW, необходимото манипулиране на данните може да бъде включено в такава запомнена процедура, което намалява нуждата от различни клиенти да възпроизвеждат едни и същи точни стъпки независимо.