1418 🐬 MySQL

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

  1. Add DETERMINISTIC / READS SQL DATA to the function
  2. Set log_bin_trust_function_creators=1 (parameter group on RDS)

Detailed fix by platform

MySQL

  1. CREATE FUNCTION f(x INT) RETURNS INT DETERMINISTIC RETURN x * 2;

How to diagnose

  1. Function — Declared characteristics?
  2. 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.