在phpMyAdmin中创建存储过程时,我找到了以下选项屏幕。
现在我想知道一切意味着什么。
我知道Routine name
,Type
,Parameters
,Definition
,Definer
,Security type
和Comment
选项。< / p>
但我不知道如何处理Is deterministic
和SQL data access
。我试过谷歌,但找不到它。有人可以告诉我这些价值观是什么意思吗?
答案 0 :(得分:5)
IS DETERMINISTIC:
如果过程或函数对于相同的输入参数总是产生相同的结果,则该过程或函数被认为是“确定性的”,否则被认为是“不确定的”。如果在例程定义中既未给出DETERMINISTIC也未给出DETERMINISTIC,则默认值为NOT DETERMINISTIC。
SQL数据访问:
CONTAINS SQL表示该例程不包含读取或写入数据的语句。如果没有明确给出这些特征,则这是默认值。这些语句的例子是SET @x = 1或DO RELEASE_LOCK(&#39; abc&#39;),它们既可以执行也不会写入数据。
NO SQL表示该例程不包含SQL语句。
READS SQL DATA表示例程包含读取数据的语句(例如,SELECT),但不包含写入数据的语句。
MODIFIES SQL DATA表示例程包含可能写入数据的语句(例如,INSERT或DELETE)。