Ver Mensaje Individual
  #2 (permalink)  
Antiguo 23/06/2008, 06:19
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 17 años
Puntos: 574
Respuesta: Error al intentar crear llaves foraneas

Código:
DROP TABLE IF EXISTS `equipos`;
CREATE TABLE `equipos` (
  `ID` int(11) NOT NULL auto_increment,
  `cod` varchar(15) NOT NULL default '',
  `ubicacion` text NOT NULL,
  `descrip` text NOT NULL,
  `marca` varchar(40) NOT NULL default '',
  `compuesto` varchar(100) NOT NULL default '',
  `campo0` varchar(100) NOT NULL default '',
  `campo1` varchar(100) NOT NULL default '',
  `campo2` varchar(100) NOT NULL default '',
  `campo3` varchar(100) NOT NULL default '',
  `campo4` varchar(100) NOT NULL default '',
  `campo5` varchar(100) NOT NULL default '',
  `campo6` varchar(100) NOT NULL default '',
  `campo7` varchar(100) NOT NULL default '',
  `campo8` varchar(100) NOT NULL default '',
  `campo9` varchar(100) NOT NULL default '',
  `campo10` varchar(100) NOT NULL default '',
  `campo11` varchar(100) NOT NULL default '',
  `campo12` varchar(100) NOT NULL default '',
  `campo13` varchar(100) NOT NULL default '',
  `campo14` varchar(100) NOT NULL default '',
  `obs` text NOT NULL,
  `cliente` int(11) NOT NULL default 0,
  `autor` int(11) NOT NULL,
  PRIMARY KEY  (`ID`),
  KEY `ind_equipos_2` (`cliente`),
  CONSTRAINT `FK_equipos_1` FOREIGN KEY (`cliente`) REFERENCES `clientes` (`ID`) ON DELETE CASCADE)
  ENGINE=InnoDB;
Así y en MySql 5.0.45 comunity-nt-log me lo ha ejecutado....

No veo muy claro ese NOT NULL default 0 en cliente...? El id de clientes es auto incremental va ha empezar en 1 por lo que nunca será cero luego no te permitirá entrar equipos sin cliente... igual es lo que quieres ... si quieres poder entrar equipos sin cliente el default deberia ser null para que se pueda respetar la FK (permite valores que esten en clientes o nulo)

`cliente` int(11),


Quim