Ya escribí al respecto hace un tiempo: https://ikasten.io/2024/05/20/hara-desaperecer-al-programador-la-ia-generativa/
Pero hoy vengo con dos nuevos ejemplos.
Quería ejecutar la siguiente instrucción en SQLite
ALTER TABLE staff ADD COLUMN IF NOT EXISTS username TEXT NOT NULL DEFAULT "";
pero SQLite no soporta la claúsula IF NOT EXISTS en ADD COLUMN.
Así que le pedí sugerencias a Claude 3.5 Sonnet y GPT-4o.
Ambos estaban de acuerdo en que esto funcionaría:
BEGIN TRANSACTION; -- Check if the username column exists, if not, add it SELECT CASE WHEN COUNT(*) = 0 THEN 'ALTER TABLE staff ADD COLUMN username TEXT NOT NULL DEFAULT ""' ELSE 'SELECT 1' -- Do nothing END FROM pragma_table_info('staff') WHERE name = 'username';
Parece un buen truco: se comprueba en los metadatos de SQLite a ver si existe una columna username (se cuenta cuántas veces existe) y si el conteo es 0, entonces hay que ejecutar el ADD COLUMN.
Pero, hemos sido engañados.
El SQL es sintácticamente correcto pero la orden dentro del THEN es simplemente para mostrar un string, no para ejecutar el ALTER TABLE.
Cuando te digan que los ingenieros software no existirán en 5 años, acuérdate de esto. O de esto otro: