Ver Mensaje Individual
  #4 (permalink)  
Antiguo 09/07/2011, 15:20
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Actualizar reglas de integridad

Porque CONSTRAINT abarca varias cosas, claves primarias, claves foráneas, índices, por lo cual cuando le dices DROP CONSTRAINT no le estás diciendo nada claro, entonces.
El hecho de acompañarlo con el nombre de la constraint tampoco es suficiente indicativo, porque el nombre es personalizable y por tanto puede abarcar varias cosas distintas. En tu caso lo que es es una FOREIGN KEY.
Mira: 13.1.2. Sintaxis de ALTER TABLE.
Si te fijas con cuidado, en la 14ª opción dice precisamente DROP FOREIGN KEY fk_symbol donde fk_symbol es la denominación del indice para la FK que deseas borrar.
En otras palabras, lo que necesitas poner es:
Código MySQL:
Ver original
  1. ALTER TABLE usuarios DROP FOREIGN KEY usuarios_ibfk_1;
y luego
Código MySQL:
Ver original
  1. ALTER TABLE `historial`
  2.   ADD CONSTRAINT `historial_ibfk_1` FOREIGN KEY (`idhistorial`) REFERENCES `usuarios` (`idusuario`) ON DELETE NO ACTION ON UPDATE NO ACTION;

Todas estas cosas son mucho más claras si las buscas en el manual de referencia. Lo demás importa muy poco.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 09/07/2011 a las 16:07