Diferencias entre Drupal 5 y Drupal 6 - Último registro insertado

Una de las múltiples diferencias o novedades entre Drupal 5 y Drupal 6 es la forma de calcular el último registro insertado en una tabla de base de datos. Podemos resumirlo diciendo que en Drupal 5 no se hace de forma totalmente correcta, pero en Drupal 6 está corregido.

Drupal 5

Drupal 5 utiliza una tabla auxiliar llamada sequences para almacenar los últimos valores de los campos auto numéricos, y, en lugar de omitir el campo autonumérico para que el gestor de bases de datos se encargue de la secuencia automáticamente, se utiliza la función db_next_id, que accede a sequences y calcula y modifica el siguiente valor para la tabla.

Por lo que, si en algún momento necesitamos resetear o alterar la secuencia de una determinada tabla en Drupal 5, deberemos tener en cuenta que la configuración de AUTO_INCREMENT para generar autonuméricos puede que no se utilice y deberemos actualizar la tabla sequences para establecer el número que necesitemos.

Si creamos un nuevo módulo para Drupal 5, o modificamos uno que requiera añadir alguna tabla con autonuméricos, utilizando como base de datos Mysql, es mejor utilizar el campo AUTO_INCREMENT y no db_next_id.

Para insertar en una tabla con un campo AUTO_INCREMENT, deberemos no informar el campo y dejar que el gestor calcule cuál es el siguiente número.

Para recuperar el último valor insertado, no hay una función definida en la capa de abstracción de base de datos, por lo que deberemos utilizar la función de Mysql last_insert_id(). Más información sobre el funcionamiento de last_insert_id()

Drupal 6

A partir de Drupal 6, la función db_next_id queda obsoleta y en su lugar se debe utilizar db_last_insert_id que sí utiliza la secuencia automática del gestor de base de datos.

Comentarios

te estas haciendo el amo del Dupral macho!!

de aquí a nada te linkan los de la pagina misma!!

Hola
no consigo instalar drupal 6, creo que el problema es que no he creado las tablas necesarias, porque me da Warnings de Tablas que no existen, pero es que no encuentro qué tablas tengo que crear en la base de datos... sabeis cómo hacerlo? saludos

Hola María, sin saber exactamente cómo lo has instalado ni los errores que te salen, es complicado darte indicaciones, para instalar drupal, puedes seguir estos pasos de drupal hispano: http://drupal.org.es/manuales/instalacion
Si haciéndolo de este modo te sigue dando errores, dime cuáles y le echo un vistazo

un saludo

Añadir nuevo comentario