viernes, 28 de agosto de 2015

Retorno de funciones de Trigger ejecutadas antes de operaciones DELETE en PostgreSQL

Al ejecutar una función de trigger antes de operaciones DELETE no debe olvidarse el retorno de la función.

RETURN NULL hace que se salte la ejecución de la operación por lo que no se realizará el borrado de los registros. De modo que si queremos que efectivamente se realice la operación DELETE el retorno debe ser algo diferente de NULL.

viernes, 9 de enero de 2015

Enviar correos usando SMTP con una cuenta de Gmail

Si queremos hacer uso de una cuenta de Google para enviar correos usando SMTP (ej: Al enviar correos automatizados en una aplicación web), hay algunos pasos que debemos seguir:

  1. Dar los valores de configuración del servidor de Google en nuestra aplicación: Estos valores son:
    • Servidor SMTP (host): smtp.gmail.com
    • Puerto: 465
    • Usuario: Tu usuario de gmail (ej: miusuario@gmail.com)
    • Contraseña: Tu contraseña
    Es probable que incluso con estos datos no podamos enviar correos y obtengamos un error como:
    Connection to smtp.gmail.com:465 Timed Out
    Este error se debe a que no se reconoce correctamente el tipo de encriptación.

viernes, 7 de diciembre de 2012

Consideraciones al renombrar una tabla en PostgreSQL

Renombrar una tabla es algo sencillo, simplemente hacemos uso del comando ALTER TABLE:

ALTER TABLE nombre_actual RENAME TO nuevo_nombre;

Sin embargo, este comando sólo renombra la tabla mientras los nombres de sus índices, secuencias, llaves foráneas y otros constraints permanecen iguales. Esto podría no ser un problema, pero si estos nombres son parte del diseño de la BD y queremos cambiarlos, deberemos renombrar los índices y secuencias uno por uno:

miércoles, 5 de diciembre de 2012

Evitar errores en búsquedas sobre campos de texto con mayúsculas y minúsculas en PostgreSQL

Si los campos de texto se almacenan con mezclas de mayúsculas y minúsculas, las búsquedas se ven afectadas y podrían no entregar los resultados que esperamos. Para ilustrarlo supongamos que tenemos una tabla llamada 'persona' con un campo 'nombre', en el que almacenaremos la información introducida por un usuario mediante un formulario y que no procesaremos dicho campo, por lo que el usuario podrá ingresar el texto usando mayúsculas y minúsculas. Luego de varios ingresos tendremos los siguientes datos: