在MYSQL命令行下 DELIMITER $$ CREATE FUNCTION `count_users`() RETURNS INT(4) BEGIN SET @num = (SELECT COUNT(user_id) AS num FROM ecs_users); RETURN @num; END$$DELIMITER ;
CMD 中 运行之后提示如下:mysql> DELIMITER $$ mysql> CREATE FUNCTION `count_users`() RETURNS INT(4) -> BEGIN -> SET @num = (SELECT COUNT(user_id) AS num FROM ecs3_users); -> RETURN @num; -> END$$ ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQ L DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable) mysql> mysql> DELIMITER ; mysql>
DELIMITER $$ CREATE FUNCTION `count_users`() RETURNS INT(4) READS SQL DATA BEGIN SET @num = (SELECT COUNT(user_id) AS num FROM ecs3_users); RETURN @num; END$$
DELIMITER $$
CREATE FUNCTION `count_users`() RETURNS INT(4)
BEGIN
SET @num = (SELECT COUNT(user_id) AS num FROM ecs_users);
RETURN @num;
END$$DELIMITER ;
mysql> CREATE FUNCTION `count_users`() RETURNS INT(4)
-> BEGIN
-> SET @num = (SELECT COUNT(user_id) AS num FROM ecs3_users);
-> RETURN @num;
-> END$$
ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQ
L DATA in its declaration and binary logging is enabled (you *might* want to use
the less safe log_bin_trust_function_creators variable)
mysql>
mysql> DELIMITER ;
mysql>
CREATE FUNCTION `count_users`() RETURNS INT(4)
READS SQL DATA
BEGIN
SET @num = (SELECT COUNT(user_id) AS num FROM ecs3_users);
RETURN @num;
END$$