Archivos de la categoría: MySQL

Truncate tabla sin hacer validacion de foreign constraints

Hola Mundo:

¿Cómo les va? Hace tiempo que no pasaba por aquí, porque he estado ocupado desarrollando
productos propios.

El tema de hoy hace referencia a un problema típico de bases de datos, específicamente cuando se quiere hacer un truncate a una tabla que es referenciada desde otras. Al existir restricciones no se puede hacer ni un truncate, ni drop ni delete, aun así cuando la tabla que la referencia está vacía.

Para este caso hay dos opciones:
1) Eliminar los constraint, hacer la operación y luego volver a crear los constraint
2) Desactivar la operación de comprobación de constraint, hacer la operación y volver activarlo.

La opción 2 es una buena medida, que debe ser usada solo en ambiente de laboratorio. El código es el  siguiente

SET FOREIGN_KEY_CHECKS = 0; 
TRUNCATE table1; 
TRUNCATE table2; 
SET FOREIGN_KEY_CHECKS = 1; 

Y eso es todo

“No tiene los permisos necesarios para acceder a esta página” en WordPress

¡Esta migración de WordPress me ha sacado canas verdes! Esto se está volviendo más o menos complicado, pero no me las ganará.

Cuando levanté la DB, tuve muchos problemas con la tabla de wp_options así que decidí a copiar tabla por tabla, para ver si habían otras que me daban problemas.

En la misma base de datos había levantado el respaldo, tenía una instalación limpia de WordPress. Hice un volcado de tablas, una a una hasta que lo hice con la tabla wp_usermeta.

Como tenía dos instalaciones en la misma base de datos, lo más lógico es que tuvieran preifijos distintos para poder distinguirlas entre ellas.

Cuando realicé el volcado de la tabla, después al entrar al portal para probar los nombres de usuario vi el mensaje de error:

No tiene los permisos necesarios para acceder a esta página

La tabla wp_usermeta guarda el prefijo de las tablas de la instalación de WordPress, así que con esta consulta reemplacé el antiguo prefijo por el nuevo prefijo que estaba almacenado en la tabla
UPDATE `newprefix_usermeta` SET `meta_key` = REPLACE(`meta_key`, 'wp_', 'newprefix_');
Donde newprefix es el nuevo prefijo de la tabla y wp_ es el antiguo prefijo.

Con esto ya pude entrar al portal y a la administracion.

🙂

Error: Data truncation: Data too long for column en Spoon

No es novedad que me encuentro traspasando datos con Pentaho Data Integrator. Realmente es una excelente herramienta para el precio que tiene.

Me encuentro copiando datos de un MySQL a otro MySQL a través del asistente y todo iba bien, hasta que al momento de iniciar la transformación me da el siguiente mensaje:

Data truncation: Data too long for column

Este error se da cuando crea la tabla automaticamente, no lo crea con el tamaño de datos correcto. Revisé la tabla de origen y la columna era un varchar(255) y la de destino era una varchar(85).
La solución fue modificiar la tabla de destino y asignarle un mayor tamaño al tipo de datos varchar de la columna de destino.

 

Error “Unable to get value ‘Date’ from database resultset” en Spoon

Tal como les comenté en el post anterior, estoy trabajando moviendo unos datos usando la herramienta Pentahoo Data Integrator.

Hace ya varios días que venía peleando con una migración, específicamente con una columna que tiene el tipo de datos datetime.

Específicamente el mensaje que error que arroja es este:

Unable to get value ‘Date’ from database resultset

Luego de eso viene un montón de mensajes referentes al driver de conexión, astros, citas del Corán, de la Biblia y cualquier otro mensaje ilegible.

Revisando en los foros de la herramienta, dicen que es un problema de MySQL ser permisivo con los valores que se le ingresan. Para lidiar con esto, hay que ir a las propiedades de la conexión a la base de datos, ir a las opciones y agregar el parámetro zeroDateTimeBehavior y asiganarle el valor convertToNull.

Opciones de la conexion

Opciones de la conexion