eliminarRestriccionUnica
Remove a UNIQUE constraint from a database table to allow duplicate values, requiring explicit confirmation to proceed.
Instructions
Sigue estas reglas OBLIGATORIAS para eliminar una restricción UNIQUE: ADVERTENCIA INICIAL: Informa al usuario que eliminar esta restricción permitirá datos duplicados, lo que podría afectar la integridad de los datos. CONFIRMACIÓN EXPLÍCITA: Para proceder, el usuario DEBE escribir la frase exacta: "Confirmar eliminación de la restricción [nombreRestriccion] de la tabla [nombreTabla]". VERIFICACIÓN ESTRICTA: No ejecutes la eliminación si la confirmación no es exacta. USO: Especifica la tabla y el nombre exacto de la restricción a eliminar. EJEMPLO: "Elimina la restricción única email_unique de la tabla usuarios."
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| nombre | Yes | Nombre de la restricción UNIQUE | |
| tabla | Yes | Nombre de la tabla |
Implementation Reference
- mcp_server.js:602-618 (handler)Handler function that executes the tool logic: drops a UNIQUE constraint/index from a table using ALTER TABLE depending on the database type (MySQL vs PostgreSQL).async ({ tabla, nombre }) => { try { if (!tabla || !nombre) { return { isError: true, content: [{ type: 'text', text: 'Debes proporcionar la tabla y el nombre de la restricción.' }] }; } let sql; if (db_type === 'mysql') { sql = `ALTER TABLE ${quoteIdent(tabla)} DROP INDEX ${quoteIdent(nombre)}`; } else { sql = `ALTER TABLE ${quoteIdent(tabla)} DROP CONSTRAINT ${quoteIdent(nombre)}`; } await query_runner.runQuery(sql); return { content: [{ type: 'text', text: 'Restricción UNIQUE eliminada exitosamente.' }] }; } catch (e) { return { isError: true, content: [{ type: 'text', text: 'Error al eliminar restricción UNIQUE: ' + (e.message || e) }] }; } }
- mcp_server.js:598-601 (schema)Input schema using Zod: requires 'tabla' (table name) and 'nombre' (constraint name).{ tabla: z.string().describe('Nombre de la tabla'), nombre: z.string().describe('Nombre de la restricción UNIQUE'), },
- mcp_server.js:590-619 (registration)MCP tool registration using server.tool, including description, input schema, and handler function.server.tool( 'eliminarRestriccionUnica', 'Sigue estas reglas OBLIGATORIAS para eliminar una restricción UNIQUE:\n' + 'ADVERTENCIA INICIAL: Informa al usuario que eliminar esta restricción permitirá datos duplicados, lo que podría afectar la integridad de los datos.\n' + 'CONFIRMACIÓN EXPLÍCITA: Para proceder, el usuario DEBE escribir la frase exacta: "Confirmar eliminación de la restricción [nombreRestriccion] de la tabla [nombreTabla]".\n' + 'VERIFICACIÓN ESTRICTA: No ejecutes la eliminación si la confirmación no es exacta.\n' + 'USO: Especifica la tabla y el nombre exacto de la restricción a eliminar.\n' + 'EJEMPLO: "Elimina la restricción única email_unique de la tabla usuarios."', { tabla: z.string().describe('Nombre de la tabla'), nombre: z.string().describe('Nombre de la restricción UNIQUE'), }, async ({ tabla, nombre }) => { try { if (!tabla || !nombre) { return { isError: true, content: [{ type: 'text', text: 'Debes proporcionar la tabla y el nombre de la restricción.' }] }; } let sql; if (db_type === 'mysql') { sql = `ALTER TABLE ${quoteIdent(tabla)} DROP INDEX ${quoteIdent(nombre)}`; } else { sql = `ALTER TABLE ${quoteIdent(tabla)} DROP CONSTRAINT ${quoteIdent(nombre)}`; } await query_runner.runQuery(sql); return { content: [{ type: 'text', text: 'Restricción UNIQUE eliminada exitosamente.' }] }; } catch (e) { return { isError: true, content: [{ type: 'text', text: 'Error al eliminar restricción UNIQUE: ' + (e.message || e) }] }; } } );