- - Filename:basic_function.sql
- - Basic syntax to create a function
DELIMITER //
CREATE FUNCTION add_tax (price FLOAT)
RETURNS FLOAT
BEGIN
RETURN price*1.1;
END
//
DELIMITER ;
将这段SQL代码粘贴到MySQL控制台执行时,报错信息如下:
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)
加上这两句之后,
DETERMINISTIC
READS SQL DATA变成
-- Filename:basic_function.sql
-- Basic syntax to create a function
DELIMITER //
CREATE FUNCTION add_tax (price FLOAT)
RETURNS FLOAT
DETERMINISTIC
READS SQL DATA
BEGIN
RETURN price*1.1;
END
//
DELIMITER ;
可以正确执行。
或者,在MySQL控制台执行
SET GLOBAL log_bin_trust_function_creators = 1;后,再执行
- - Filename:basic_function.sql
- - Basic syntax to create a function
DELIMITER //
CREATE FUNCTION add_tax (price FLOAT)
RETURNS FLOAT
BEGIN
RETURN price*1.1;
END
//
DELIMITER ;
也可以正确执行。
这个错误,我不了解,参考资料是:
https://dev.mysql.com/doc/refman/5.0/en/stored-programs-logging.html
http://blog.csdn.net/ty_soft/article/details/6940190