如果数据库中的数据发生了变化,确定性关键字会做什么?

时间:2017-12-11 07:40:18

标签: mysql mysql-workbench deterministic

所以我在mysql workbench中添加了这个存储函数:

CREATE FUNCTION `getfullAdd` (id INT unsigned)
RETURNS VARCHAR(160)
CHARACTER SET utf8
COMMENT 'function that returns all addresses with character string when you enter customer number'
DETERMINISTIC
READS SQL DATA
BEGIN
DECLARE addfound VARCHAR(160) CHARACTER SET utf8;
SELECT CONCAT_WS(', ', addr01, addr02) INTO addfound FROM dtb_customer WHERE customer_id=id;
RETURN addfound;
END

我对这个DETERMINISTIC关键字不感兴趣。

它对上述功能有什么作用?

如果由此关键字设置,函数是否通过相同的参数返回相同的值?

如果更改了客户的地址,此功能是否会从同一参数返回不同的结果?

1 个答案:

答案 0 :(得分:1)

来自手册

“如果一个例程对于相同的输入参数总是产生相同的结果,则该例程被认为是”确定性的“,否则被认为是”不确定的“。

https://dev.mysql.com/doc/refman/5.7/en/create-procedure.html

因此,只要没有客户ID发生变化,您的功能就是DETERMINISTIC。