【解決】This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration

使用 Navicat 導入備份的時候,出現了 This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its 的錯誤,備份裏面是包含了創建的函數的,在本地環境和服務器環境不一樣就報錯了。

問題分析

我們創建函數時必須指定我們的函數是否是

  • DETERMINISTIC 不確定的
  • NO SQL 沒有 SQL 語句,當然也不會修改數據
  • READS SQL DATA 只是讀取數據,當然也不會修改數據
  • MODIFIES SQL DATA 要修改數據
  • CONTAINS SQL 包含了 SQL 語句

解決方法

在 MySQL 中創建函數時出現這種錯誤的解決方法:

1、在 MySQL 數據庫中執行以下語句,臨時生效,重啓後失效

set global log_bin_trust_function_creators=TRUE;

2、在配置文件 my.ini 的 [mysqld] 配置永久生效

log_bin_trust_function_creators=1
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章