2013-11-29 6 views
2

При создании хранимой процедуры в phpMyAdmin я нашел следующий экран настроек.phpMyAdmin Сохраненная процедура Объяснение

pma

Теперь интересно, что значит все.

Я знаю Routine name, Type, Parameters, Definition, Definer, Security type и Comment варианты.

Я, однако, не знаю, что делать с Is deterministic и SQL data access. Я попробовал Google, но не смог найти его. Может ли кто-нибудь просветить меня, что означают эти значения?

+1

Google "Mysql Procedure Depinistic" - http://dev.mysql.com/doc/refman/5.0/en/create-procedure.html. Все они являются частью инструкции CREATE PROCEDURE. –

+0

@MikeB А правда, что имеет смысл ... Не знаю, почему я думал, что это будет phpMyAdmin конкретным. – skiwi

ответ

2

детерминирована:

процедура или функция считается «детерминированной», если она всегда производит тот же результат для одних и тех же входных параметров, и «не детерминированной» в противном случае. Если ни DETERMINISTIC, ни NOT DETERMINISTIC не указаны в стандартном определении, значение по умолчанию НЕ ДЕТЕРМИНИСТИЧЕСКОЕ.

SQL DATA ACCESS:

  • СОДЕРЖИТ SQL указывает, что программа не содержит заявления, которые чтения или записи данных. Это значение по умолчанию, если ни одна из этих характеристик не указана явно. Примерами таких операторов являются SET @x = 1 или DO RELEASE_LOCK ('abc'), которые выполняют, но не читают и не записывают данные.

  • NO SQL указывает, что подпрограмма не содержит операторов SQL.

  • READS SQL DATA указывает, что подпрограмма содержит инструкции, которые читают данные (например, SELECT), но не операторы, которые записывают данные.

  • MODIFIES SQL DATA указывает, что подпрограмма содержит инструкции, которые могут записывать данные (например, INSERT или DELETE).

+0

Благодарим вас за ответ, но я все еще недоумеваю, когда применяется ** SQL Data Access **. Сначала у меня были все мои хранимые процедуры как ** NO SQL **, так как я не знал, что это значит. Однако выбор данных был выполнен. Теперь я изменил некоторые из них на ** READS SQL DATA **, но я не вижу никаких изменений. Когда ** SQL DATA ACCESS ** применяется к хранимой процедуре? – dotnetCarpenter

Смежные вопросы