馃 Chapuzas de Programaci贸n: El ID Maldito que Empez贸 en 0

馃 Chapuzas de Programaci贸n: El ID Maldito que Empez贸 en 0

⚠️ Advertencia: Lo que vas a leer a continuaci贸n puede herir la sensibilidad de programadores organizados.

馃搮 D铆a 1: El bug

Yo: “¿Por qu茅 demonios el ID empieza en 0 si PostgreSQL siempre inicia en 1?”

La base de datos: “Yo no fui.”
El framework (CodeIgniter 4): “Yo solo sigo 贸rdenes.”
El culpable: yo, que le mandaba el ID manualmente como si supiera lo que hac铆a.

馃攷 El crimen

$datos["id"] = 0;
$model->save($datos);

As铆, sin miedo. Como si los ids fueran caramelos y no llaves primarias de la integridad de la base de datos.

馃挜 Resultado

La base de datos, obediente, dijo:

“Ah, ¿quieres guardar el ID 0? Claro, bro, aqu铆 lo tienes. ¿Que esperabas que yo lo autogenerara? Jajajaja, no me hagas re铆r en SQL.”

馃槶 El llanto

Horas buscando si la secuencia de PostgreSQL estaba rota, si el SERIAL ven铆a del inframundo, si hab铆a un bug milenario...
Pero no.

Solo era yo. El que puso:

'id' => 0

con toda la frescura de un junior confundido.

✅ La salvaci贸n

Elimin茅 ese demon铆aco campo antes de guardar:

if (isset($datos['id']) && $datos['id'] == 0) {
    unset($datos['id']); // Que lo genere la DB, ¡como Dios manda!
}

Y as铆, por arte de magia, ¡el ID volvi贸 a empezar en 1! 馃帀

馃‍♂️ Moral de la historia

No le digas a PostgreSQL qu茅 ID usar. 脡l ya lo sabe.
Si est谩s usando autoincremento, no metas la mano. Solo deja que la secuencia haga su magia.

馃ぁ Chapuza nivel: Yo mismo

¿Te ha pasado algo peor?
¿Has insertado registros con la fecha '0000-00-00' en PostgreSQL?
¿Has hecho DELETE FROM users sin WHERE?

Cu茅ntamelo en los comentarios. Nos re铆mos juntos… o lloramos en grupo 馃槶馃嵑

Comentarios

Entradas populares