欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

mysql怎么輸入函數(shù) mysql 函數(shù)編寫

mysql udf函數(shù)怎么調(diào)用

背景

10年積累的成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有資源免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

在上一篇推文中,我們介紹了 MySQL Group Replication 8.0.16 支持信息碎片化功能來增強(qiáng)大型事務(wù)處理能力。

如果您想在組復(fù)制中使用該功能,則任何組成員的版本都不能低于 8.0.16!

簡單地說就是由于低版本協(xié)議上不支持。MySQL 8.0.16 的組通訊開始支持新協(xié)議,簡稱“分段協(xié)議”,之前的版本中只有一種“壓縮協(xié)議”。

如果多個(gè)成員想加入復(fù)制組,那么在協(xié)議匹配上遵循以下原則:

現(xiàn)有復(fù)制組成員和新加入成員版本相同,加入成功。

低版本成員想加入高版本的組會(huì)被驅(qū)逐,加入失敗。

高版本的成員想加入低版本的組,單獨(dú)加入成功,多個(gè)加入失敗。

例如:

一個(gè) MySQL Server 8.0.16 實(shí)例可以成功加入使用通信協(xié)議版本 5.7.24 的組。

一個(gè) MySQL Server 5.7.24 實(shí)例無法成功加入使用通信協(xié)議版本 8.0.16 的組。

兩個(gè) MySQL Server 8.0.16 實(shí)例無法同時(shí)加入使用通信協(xié)議版本 5.7.24 的組。

兩個(gè) MySQL Server 8.0.16 實(shí)例可以同時(shí)加入使用通信協(xié)議版本 8.0.16 的組。

新增 UDF

為了能讓高版本的復(fù)制組更便于加入低版本的成員,MySQL 8.0.16 新增兩個(gè) UDF。

您可以使用兩個(gè)新的 UDF 命令去管理組通信協(xié)議:

1. group_replication_set_communication_protocol(new_protocol)

設(shè)置組復(fù)制通訊協(xié)議版本

SELECT group_replication_set_communication_protocol("8.0.15");

填入一個(gè)所有成員都支持的版本號(hào),即:new_protocol ≤ 所有成員的 MySQL版本。

new_protocol 格式:major.minor.patch (主版本號(hào).次版本號(hào).發(fā)布版本號(hào))例如:8.0.15。

2. group_replication_get_communication_protocol()

獲取復(fù)制中最舊成員的 MySQL 版本號(hào)

SELECT group_replication_get_communication_protocol(); ? ?+------------------------------------------------+ ? ?| group_replication_get_communication_protocol() | ? ?+------------------------------------------------+ ? ?| 5.7.14 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | ? ?+------------------------------------------------+

獲取的版本號(hào)可能與設(shè)置的值不一致,但不一致的版本之間組復(fù)制協(xié)議是一樣的。

返回結(jié)果格式:major.minor.patch (主版本號(hào).次版本號(hào).發(fā)布版本號(hào))例如:8.0.15。

以上兩個(gè) UDF 對(duì)全部組成員有效,主機(jī)或從機(jī)上均可執(zhí)行。

結(jié)論

若想使用信息碎片功能。建議將組復(fù)制成員全部升級(jí)為 8.0.16。

若組內(nèi)成員版本僅有部分為 8.0.16,可以用兩個(gè)新的函數(shù)來讓高版本的成員保持與其它成員組協(xié)議一致。

請點(diǎn)擊輸入圖片描述

在mysql中自定義的函數(shù)怎么調(diào)用

調(diào)用如:select 函數(shù)名(參數(shù)列表)。

mysql中的UDF(自定義函數(shù)),可以寫好一些方法或?函數(shù),然后進(jìn)行調(diào)用,而且是在SQL語句中可以進(jìn)行調(diào)用。?

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中,不要定義與數(shù)據(jù)表中重名的列。而在SQL中,?則可以像SELECT CalculateAmount(1);那樣去調(diào)用了。

如何利用MySQL數(shù)據(jù)庫使用字符串函數(shù)

方法/步驟

首先,計(jì)算字符串的字符數(shù),可以用char_length()函數(shù),代碼如下:

select

'zhangsan',char_length('zhangsan');

如下圖所示:

字符串中的length()函數(shù),用來計(jì)算字符串的長度,代碼如下:

select

'zhangsan',length('zhangsan1111');

如下圖所示:

字符串函數(shù)

中有時(shí)需要將幾個(gè)不同的字符串拼接在一起,這時(shí)可以利用concat(a1,a2,...)和concat_ws(b,b1,b2,...),可以將各字符串合并成一個(gè)字符串,代碼如下:

select

concat('zhang','san','feng');

select

concat_ws('*','zhang','san','feng');

如下圖所示:

文章名稱:mysql怎么輸入函數(shù) mysql 函數(shù)編寫
文章網(wǎng)址:http://chinadenli.net/article28/ddoddcp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)用戶體驗(yàn)標(biāo)簽優(yōu)化網(wǎng)站維護(hù)App開發(fā)軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)