MySQL ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled
Creating a stored function failed because binary logging requires it to declare its data access characteristics.
Seen on:
MySQL
Meaning
With binlog enabled, MySQL needs functions marked DETERMINISTIC / READS SQL DATA, or log_bin_trust_function_creators=1.
Common causes
- Function missing characteristics
- Importing routines on a replicated/managed server
⚡ Quick fix
- Add DETERMINISTIC / READS SQL DATA to the function
- Set log_bin_trust_function_creators=1 (parameter group on RDS)
Detailed fix by platform
MySQL
CREATE FUNCTION f(x INT) RETURNS INT DETERMINISTIC RETURN x * 2;
How to diagnose
- Function — Declared characteristics?
- Recent change — Did it start after a deploy, upgrade, or configuration change? Compare with the last working version.
🧠 Still stuck? Analyze your error
Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.
Was this page helpful?
Report a correction or suggest an improvement
Last updated 2 Oct 2026