mysql自定義函式

2021-09-28 15:25:18 字數 793 閱讀 7653

這個資料庫函式坑不少;總的來說還是自己經驗欠缺;記錄一下爬坑之路

這個是函式的語法;

然後把最簡單的sql函式複製進去然後就報錯了;

當時就是臥槽---最簡單的都報錯   檢視錯誤

1418 - this function has none of deterministic, no sql, or reads sql data in

大概意思就是:

mysql開啟bin-log後,呼叫儲存過程或者函式以及觸發器時,會出現錯誤號為1418的錯誤:

原因:這是我們開啟了bin-log, 我們就必須指定我們的函式是否是

1 deterministic 不確定的

2 no sql 沒有sql語句,當然也不會修改資料

3 reads sql data 只是讀取資料,當然也不會修改資料

4 modifies sql data 要修改資料

5 contains sql 包含了sql語句

其中在function裡面,只有 deterministic, no sql 和 reads sql data 被支援。如果我們開啟了 bin-log, 我們就必須為我們的function指定乙個引數。

最簡潔的方法修改log_bin

在mysql中建立函式時出現這種錯誤的解決方法:

set global log_bin_trust_function_creators=true;

mysql自定義函式優點 MySQL自定義函式

在使用 mysql 的過程中,mysql 自帶的函式可能完成不了我們的業務需求,這時候就需要自定義函式。自定義函式是一種與儲存過程十分相似的過程式資料庫物件。它與儲存過程一樣,都是由 sql 語句和過程式語句組成的 片段,並且可以被應用程式和其他 sql 語句呼叫。自定義函式與儲存過程之間存在幾點區...

mysql自定義函式命名 MySQL自定義函式

在使用 mysql 的過程中,mysql 自帶的函式可能完成不了我們的業務需求,這時候就需要自定義函式。自定義函式是一種與儲存過程十分相似的過程式資料庫物件。它與儲存過程一樣,都是由 sql 語句和過程式語句組成的 片段,並且可以被應用程式和其他 sql 語句呼叫。自定義函式與儲存過程之間存在幾點區...

mysql 自定義函式

今天要做乙個排序,有中文和英文的,資料庫採用utf8編碼,排除來的不對,所以需要將中文轉換成中文的第乙個字母,然後來排序 先小小的看一下mysql的自定義函式 drop function if exists fntable 如果存在就刪除 delimiter 函式開始 create function...