6.41 MySQL函数的五大特性关键字
MySQL 自定义函数 / 存储过程 五大特性关键字 除了你刚学的 DETERMINISTIC,一共就这4 个常用特性,加上它总共五类,必须记熟(教学常考、写函数必用): 一、四大核心特性(和 DETERMINISTIC 并列) 1. DETERMINISTIC 确定性函数 相同入参 → 固定相同结果,不查表、不读时间、不随机。 纯计算、字符串处理用这个。 2. NOT DETERMINISTIC 非确定性函数 相同入参可能返回不同结果。 只要查表、用 NOW ()、RAND ()、UUID () 都必须用这个。 3. NO SQL 不执行任何 SQL 语句 函数里没有 SELECT/INSERT/UPDATE/DELETE,只做变量运算、逻辑判断。 4. READS SQL DATA 只读 SQL 数据 函数里有 SELECT 查询,但不增删改数据(你刚才的 myf3k 就属于这一种)。 5. MODIFIES SQL DATA 修改 SQL 数据 函数里包含 INSERT / UPDATE / DELETE 写表操作。 三、快速分类口诀(方便教学记) 纯计算无查表 → DETERMINISTIC 有时间 / 随机 → NOT DETERMINISTIC 完全不写 SQL → NO SQL 只查不修改 → READS SQL DATA 增删改写表 → MODIFIES SQL DATA 四、补充小知识点 MySQL 5.7/8.0 创建函数必须选其一,否则报 1418 错误; 函数尽量不要用 MODIFIES SQL DATA,规范写业务写在存储过程里。