SHOW ERRORS
SHOW ERRORS muestra los errores generados por la última sentencia ejecutada. A diferencia de SHOW WARNINGS que muestra errores, advertencias y notas, SHOW ERRORS solo muestra los errores.
Sintaxis
-- Ver todos los errores
SHOW ERRORS;
-- Ver un número limitado
SHOW ERRORS LIMIT cantidad;
-- Ver con offset
SHOW ERRORS LIMIT offset, cantidad;
-- Contar errores
SHOW COUNT(*) ERRORS;Ejemplo básico
-- Provocar un error
-- SELECT * FROM tabla_inexistente;
-- Error: Table 'tienda_mysql.tabla_inexistente' doesn't exist
-- Ver el error
SHOW ERRORS;| Level | Code | Message |
|---|---|---|
| Error | 1146 | Table 'tienda_mysql.tabla_inexistente' doesn't exist |
Columnas del resultado
| Columna | Descripción |
|---|---|
| Level | Siempre 'Error' para SHOW ERRORS |
| Code | Código de error numérico de MySQL |
| Message | Texto descriptivo del error |
SHOW COUNT ERRORS
-- Contar errores de la última sentencia
SHOW COUNT(*) ERRORS;| @@session.error_count |
|---|
| 1 |
También puedes acceder al conteo con la variable:
SELECT @@error_count;Errores vs Warnings
-- SHOW ERRORS: solo errores (Level = 'Error')
SHOW ERRORS;
-- SHOW WARNINGS: errores + advertencias + notas
SHOW WARNINGS;GET DIAGNOSTICS
Para obtener información detallada dentro de procedimientos, usa GET DIAGNOSTICS en lugar de SHOW ERRORS:
DELIMITER //
CREATE PROCEDURE diagnostico_ejemplo()
BEGIN
DECLARE v_code INT;
DECLARE v_msg VARCHAR(200);
DECLARE v_count INT;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
BEGIN
-- Número de condiciones
GET DIAGNOSTICS v_count = NUMBER;
-- Detalle de la primera condición
GET DIAGNOSTICS CONDITION 1
v_code = MYSQL_ERRNO,
v_msg = MESSAGE_TEXT;
SELECT v_count AS total_condiciones,
v_code AS codigo,
v_msg AS mensaje;
END;
-- Provocar error
INSERT INTO tabla_inexistente VALUES (1);
END //
DELIMITER ;CALL diagnostico_ejemplo();| total_condiciones | codigo | mensaje |
|---|---|---|
| 1 | 1146 | Table 'tienda_mysql.tabla_inexistente' doesn't exist |
Propiedades de GET DIAGNOSTICS CONDITION
| Propiedad | Descripción |
|---|---|
| MYSQL_ERRNO | Código de error de MySQL |
| MESSAGE_TEXT | Mensaje descriptivo |
| RETURNED_SQLSTATE | Código SQLSTATE |
| TABLE_NAME | Tabla relacionada |
| COLUMN_NAME | Columna relacionada |
| SCHEMA_NAME | Esquema relacionado |
error_count y max_error_count
-- Ver el máximo de errores que MySQL almacena
SELECT @@max_error_count;| @@max_error_count |
|---|
| 1024 |
-- Cambiar el máximo para la sesión
SET max_error_count = 100;Limpieza
DROP PROCEDURE IF EXISTS diagnostico_ejemplo;En el siguiente artículo veremos SHOW WARNINGS para inspeccionar advertencias y notas además de errores.
Escrito por Eduardo Lázaro
