改那個PHP項目加了個功能,本地MYSQL里添加了一個函數了,現在要轉到服務器上,然后服務器上的MYSQL只能通過PHPMYADMIN網頁操作的,在網頁上SQL里輸入創建函數的語句,
結果報錯了:this function has none of DETERMINISTIC
查了一下是這個原因:https://www.jb51.net/article/97037.htm
在上面再運行:set global log_bin_trust_function_creators=1; 就行了
另我本地的MYSQL是用SQLYOG連接的,導出的函數創建語句里有/* 之類的注釋的,放在PHPMYADMIN上執行的時候需要去掉,要不然有可能執行不了,還有那個
DEFINER=`root`@`%` 也要去掉。。。
下面是我的函數創建語句:
USE `sql88_aosijue_c`; DELIMITER $$ CREATE FUNCTION `calc_xjs`(user_id int) RETURNS int(11) BEGIN return (SELECT COUNT(1) FROM tp_users WHERE pid=user_id); END $$ DELIMITER ;
注意放在服務器上的PHPMYADMIN執行的話那個USE后的數據庫名也要和服務器上的一致