1437
MariaDBERRORNotableTriggersHIGH confidence

Triggers cannot be created on system tables

Production Risk

Low — DDL error; the trigger will not be created.

What this means

ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA (1437, SQLSTATE HY000) is raised when you attempt to create a trigger on a table in the mysql, information_schema, or performance_schema system schemas.

Why it happens
  1. 1Attempting to CREATE TRIGGER on a table in the mysql schema
  2. 2Attempting to CREATE TRIGGER on information_schema or performance_schema tables
How to reproduce
trigger — this will error
trigger — this will error
CREATE TRIGGER audit_users
AFTER INSERT ON mysql.user
FOR EACH ROW SET @x = 1;

expected output

ERROR 1437 (HY000): Triggers can not be created on system tables

Fix

Use application-level auditing or general query log

Use application-level auditing or general query log
-- Enable general query log for auditing:
SET GLOBAL general_log = 'ON';
SET GLOBAL general_log_file = '/var/log/mysql/general.log';

Why this works

System tables cannot have triggers; use MySQL audit plugin or query logs for monitoring system table changes.

What not to do

Sources
Official documentation ↗

MySQL 8.0 — 1437 ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA

Content generated with AI assistance and reviewed for accuracy. Found an error? hello@errcodes.dev

← All MariaDB errors