database compatibility assessment

MYSQL 存储函数(CREATE FUNCTION) 迁移 oceanbase 4.3 mysql 模式 怎么改

迁衡基于规则 my.proc.stored_function 分析 MYSQL 存储函数(CREATE FUNCTION) 到 oceanbase 4.3 mysql 模式 的兼容性、改写路径与验证建议。

兼容性判定

真机验证:oceanbase 4.2.5.7 · MySQL 模式存储函数子集;DETERMINISTIC 等特征子句解析行为待核 |实测2026-07-09(v4.2.5.7,172.16.0.146): DDL CREATE FUNCTION 成功
支持度partial
严重度major
置信度high
依据规则my.proc.stored_function

怎么改

需按命中位置逐条评估改写

判定说明

MySQL 模式存储函数子集;DETERMINISTIC 等特征子句解析行为待核 |实测2026-07-09(v4.2.5.7,172.16.0.146): DDL CREATE FUNCTION 成功

库侧 / 应用侧路径

库侧改造

可行:按目标过程语言逐个改写,DETERMINISTIC 等特征子句去除或映射

应用侧改造

可行:函数逻辑上移应用服务层

推荐路线:db_side。验证建议:编译通过 + 输入输出用例比对;函数在索引/生成列中的引用一并排查

规则样例

CREATE FUNCTION f_rate(p INT) RETURNS DECIMAL(5,2) DETERMINISTIC RETURN p / 100
CREATE DEFINER=`admin`@`%` FUNCTION f1() RETURNS INT RETURN 1
SELECT f_rate(85)