Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/03/2011, 04:01
mskn73
 
Fecha de Ingreso: febrero-2011
Mensajes: 7
Antigüedad: 13 años, 3 meses
Puntos: 0
Problema al crear la tabla. Can't create table. (Errno:121)

Tengo que hacer una prática para la universidad. Desde la consola tengo que cargar un fichero para que cree toda la base de datos. El problema es que en una de las tablas me sale el error del titulo:
Código:
ERROR 1005 (HY000): Can't create table 'practica1.domicilio' (errno: 121)
-------------------------------------------------------------------------
| Level | Code | Message                                                |
-------------------------------------------------------------------------
| Error | 1005 | Can't create table 'practica1.domicilio' (errno: 121)  |
-------------------------------------------------------------------------

Y el fichero sql que intento cargar es este:
Código MySQL:
Ver original
  1. SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
  2. SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
  3. SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';
  4.  
  5. DROP SCHEMA IF EXISTS `practica1` ;
  6. CREATE SCHEMA IF NOT EXISTS `practica1` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
  7. USE `practica1` ;
  8.  
  9. -- -----------------------------------------------------
  10. -- Table `practica1`.`Empleados`
  11. -- -----------------------------------------------------
  12. DROP TABLE IF EXISTS `practica1`.`Empleados` ;
  13.  
  14. CREATE  TABLE IF NOT EXISTS `practica1`.`Empleados` (
  15.   `dni` VARCHAR(9) NOT NULL ,
  16.   `nombre` VARCHAR(50) NULL ,
  17.   `sueldo` INT NOT NULL DEFAULT 0 ,
  18.   PRIMARY KEY (`dni`) )
  19.  
  20.  
  21. -- -----------------------------------------------------
  22. -- Table `practica1`.`telefono`
  23. -- -----------------------------------------------------
  24. DROP TABLE IF EXISTS `practica1`.`telefono` ;
  25.  
  26. CREATE  TABLE IF NOT EXISTS `practica1`.`telefono` (
  27.   `dni_telf` VARCHAR(9) NOT NULL ,
  28.   `telefono` VARCHAR(9) NOT NULL ,
  29.   INDEX `dni` (`dni_telf` ASC) ,
  30.   PRIMARY KEY (`dni_telf`, `telefono`) ,
  31.   CONSTRAINT `dni`
  32.     FOREIGN KEY (`dni_telf` )
  33.     REFERENCES `practica1`.`Empleados` (`dni` )
  34.  
  35.  
  36. -- -----------------------------------------------------
  37. -- Table `practica1`.`codigopostal`
  38. -- -----------------------------------------------------
  39. DROP TABLE IF EXISTS `practica1`.`codigopostal` ;
  40.  
  41. CREATE  TABLE IF NOT EXISTS `practica1`.`codigopostal` (
  42.   `cp` INT NOT NULL ,
  43.   `poblacion` VARCHAR(50) NULL ,
  44.   `provincia` VARCHAR(50) NULL ,
  45.   PRIMARY KEY (`cp`) )
  46.  
  47.  
  48. -- -----------------------------------------------------
  49. -- Table `practica1`.`domicilio`
  50. -- -----------------------------------------------------
  51. DROP TABLE IF EXISTS `practica1`.`domicilio` ;
  52.  
  53. CREATE  TABLE IF NOT EXISTS `practica1`.`domicilio` (
  54.   `calle` VARCHAR(50) NOT NULL ,
  55.   `cp` INT NOT NULL ,
  56.   `dni_dom` VARCHAR(9) NOT NULL ,
  57.   PRIMARY KEY (`calle`, `dni_dom`) ,
  58.   INDEX `cp` (`cp` ASC) ,
  59.   INDEX `dni` (`dni_dom` ASC) ,
  60.   CONSTRAINT `cp`
  61.     FOREIGN KEY (`cp` )
  62.     REFERENCES `practica1`.`codigopostal` (`cp` )
  63.   CONSTRAINT `dni`
  64.     FOREIGN KEY (`dni_dom` )
  65.     REFERENCES `practica1`.`Empleados` (`dni` )
  66.  
  67.  
  68.  
  69. SET SQL_MODE=@OLD_SQL_MODE;
  70. SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
  71. SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;


Y según tengo entendido, hay dos motores de bases de datos de mysql, InnoDB y MyISAM. InnoDB permite FK y MyISAM da problemas. Al meterme en el phpmyadmin he visto que tengo una cosa rara con los dos y no se si podría ser el problema. Dejo captura de pantalla:

[URL="http://img847.imageshack.us/img847/6871/bdsip1duda.png"]http://img847.imageshack.us/img847/6871/bdsip1duda.png[/URL]

Gracias (=