Translate

sábado, 1 de agosto de 2026

Las funciones de MySQL que te hacen escribir menos SQL


Cuando trabajamos con MySQL solemos escribir consultas usando valores "hardcodeados". El problema es que, tarde o temprano, ese SQL termina ejecutándose en otro ambiente y hay que modificarlo.

Sin embargo, MySQL tiene un conjunto de funciones que permiten que nuestras consultas se adapten automáticamente al contexto de ejecución. 


DATABASE()

Devuelve el nombre de la base de datos actualmente seleccionada.

SELECT DATABASE();


Esto permite reemplazar consultas como esta:


SELECT TABLE_NAME

FROM INFORMATION_SCHEMA.TABLES

WHERE TABLE_SCHEMA = 'nabu_db';


por una versión mucho más portable:


SELECT TABLE_NAME

FROM INFORMATION_SCHEMA.TABLES

WHERE TABLE_SCHEMA = DATABASE();


Ahora el mismo script funciona sin importar el esquema que esté utilizando la conexión.


USER()

Indica con qué usuario se autenticó la conexión.


SELECT USER();


Ejemplo:

app_user@192.168.1.10


Muy útil para auditoría o diagnóstico.


CURRENT_USER()

Aunque parece similar a USER(), devuelve el usuario cuyos privilegios se están utilizando.


SELECT CURRENT_USER();


En procedimientos almacenados o vistas puede diferir de USER().


CONNECTION_ID()


Cada conexión posee un identificador único.

SELECT CONNECTION_ID();


Resulta muy útil cuando estamos investigando bloqueos o consultando SHOW PROCESSLIST.


VERSION()

Devuelve la versión del servidor.


SELECT VERSION();


Ideal para scripts que necesitan comportarse distinto según la versión instalada.


NOW()

Obtiene la fecha y hora actual del servidor.


SELECT NOW();


A diferencia de llamar a la fecha desde la aplicación, aquí el valor proviene del servidor de base de datos, garantizando consistencia en todas las consultas de la transacción.


SCHEMA()

Es simplemente un sinónimo de DATABASE().


SELECT SCHEMA();


Muchos desarrolladores nunca la utilizan porque DATABASE() es más conocida, pero ambas producen exactamente el mismo resultado.


Este tipo de funciones hace que nuestros scripts sean mucho más reutilizables.

En lugar de asumir el nombre de una base de datos, el usuario conectado o la versión del servidor, dejamos que sea MySQL quien nos proporcione esa información.

Son pequeños detalles, pero son los que hacen que un script pase de servir para un ambiente específico a funcionar prácticamente en cualquier instalación sin modificaciones. Y eso, cuando uno mantiene decenas de bases de datos o automatiza despliegues, termina ahorrando muchísimo tiempo.


No hay comentarios.:

Publicar un comentario