大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
调用如:select 函数名(参数列表)。
成都创新互联公司是一家专注于成都做网站、网站设计、外贸营销网站建设与策划设计,椒江网站建设哪家好?成都创新互联公司做网站,专注于网站建设十载,网设计领域的专业建站公司;建站业务涵盖:椒江等地区。椒江做网站价格咨询:028-86922220
mysql中的UDF(自定义函数),可以写好一些方法或 函数,然后进行调用,而且是在SQL语句中可以进行调用。
DROP FUNCTION CalculateAmount
CREATE FUNCTION CalculateAmount(userid INT) RETURNS float(10,2)
BEGIN
DECLARE totalCredits FLOAT;
SELECT SUM(amount) INTO totalAmount FROM credit_user WHERE id =userid;
RETURN totalAmount;
END
要注意的是,在UDF中,不要定义与数据表中重名的列。而在SQL中, 则可以像SELECT CalculateAmount(1);那样去调用了。
背景
在上一篇推文中,我们介绍了 MySQL Group Replication 8.0.16 支持信息碎片化功能来增强大型事务处理能力。
如果您想在组复制中使用该功能,则任何组成员的版本都不能低于 8.0.16!
简单地说就是由于低版本协议上不支持。MySQL 8.0.16 的组通讯开始支持新协议,简称“分段协议”,之前的版本中只有一种“压缩协议”。
如果多个成员想加入复制组,那么在协议匹配上遵循以下原则:
现有复制组成员和新加入成员版本相同,加入成功。
低版本成员想加入高版本的组会被驱逐,加入失败。
高版本的成员想加入低版本的组,单独加入成功,多个加入失败。
例如:
一个 MySQL Server 8.0.16 实例可以成功加入使用通信协议版本 5.7.24 的组。
一个 MySQL Server 5.7.24 实例无法成功加入使用通信协议版本 8.0.16 的组。
两个 MySQL Server 8.0.16 实例无法同时加入使用通信协议版本 5.7.24 的组。
两个 MySQL Server 8.0.16 实例可以同时加入使用通信协议版本 8.0.16 的组。
新增 UDF
为了能让高版本的复制组更便于加入低版本的成员,MySQL 8.0.16 新增两个 UDF。
您可以使用两个新的 UDF 命令去管理组通信协议:
1. group_replication_set_communication_protocol(new_protocol)
设置组复制通讯协议版本
SELECT group_replication_set_communication_protocol("8.0.15");
填入一个所有成员都支持的版本号,即:new_protocol ≤ 所有成员的 MySQL版本。
new_protocol 格式:major.minor.patch (主版本号.次版本号.发布版本号)例如:8.0.15。
2. group_replication_get_communication_protocol()
获取复制中最旧成员的 MySQL 版本号
SELECT group_replication_get_communication_protocol(); +------------------------------------------------+ | group_replication_get_communication_protocol() | +------------------------------------------------+ | 5.7.14 | +------------------------------------------------+
获取的版本号可能与设置的值不一致,但不一致的版本之间组复制协议是一样的。
返回结果格式:major.minor.patch (主版本号.次版本号.发布版本号)例如:8.0.15。
以上两个 UDF 对全部组成员有效,主机或从机上均可执行。
结论
若想使用信息碎片功能。建议将组复制成员全部升级为 8.0.16。
若组内成员版本仅有部分为 8.0.16,可以用两个新的函数来让高版本的成员保持与其它成员组协议一致。
请点击输入图片描述
create function 函数名称(参数列表)
reurns 返回值类型
函数体
执行的方法很简单:
加载
** create function 函数名称 returns {string|real|integer}
** soname 你定义的动态库位置
释放!
** drop function 函数名称