Setting Advanced Function/Procedure Properties

Security
The SQL SECURITY characteristic can be used to specify whether the routine should be executed using the permissions of the user who creates the routine or the user who invokes it. The default value is Definer.

Definer
The default Definer value is the user who executes the CREATE PROCEDURE or CREATE FUNCTION statement. (This is the same as DEFINER = CURRENT_USER.) If a user value is given, it should be a MySQL account in 'user_name'@'host_name' format (the same format used in the GRANT statement). The user_name and host_name values both are required.

Data Access
Several characteristics provide information about the nature of data use by the routine.

Contains SQL
Indicates that the routine does not contain statements that read or write data. It is the default if none of these characteristics is given explicitly.

No SQL
Indicates that the routine contains no SQL statements.

Reads SQL Data
Indicates that the routine contains statements that read data, but not statements that write data.

Modifies SQL Data
Indicates that the routine contains statements that may write data.

Deterministic
A procedure or function is considered deterministic if it always produces the same result for the same input parameters, and not deterministic otherwise. The default is not deterministic.