Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/06/2013, 19:03
aldo_rengo
 
Fecha de Ingreso: febrero-2013
Ubicación: en mi casa
Mensajes: 541
Antigüedad: 11 años, 8 meses
Puntos: 3
foreign key constraint NO ENTIENDO NADA

hola miren tengo esto..... lo de abajo y no puedo agregar esto..


que error hay, a la tabla pais, no le puedo agregar,
INSERT INTO `pais` (`id_pais`, `id_region`, `descripcion`) VALUES
(NULL, 1, 'Rusia');


ME APARECE ESTO


#1062 - Duplicate entry '1' for key 'id_region'


tengo 3 tablas,
region (id,descripcion) id es PK

pais(idpais, idregion,descripcion) idpais es PK, idregion es foranea referenciando a la PK de region

distrito(iddistrito,idpais,descripcion) iddistrito es pk, idpais es foranea referenciando a pk de pais


Código MySQL:
Ver original
  1. CREATE TABLE IF NOT EXISTS `distrito` (
  2.   `id_distrito` int(11) NOT NULL AUTO_INCREMENT,
  3.   `id_pais` int(11) NOT NULL,
  4.   `descripcion` varchar(60) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL,
  5.   PRIMARY KEY (`id_distrito`),
  6.   UNIQUE KEY `id_pais` (`id_pais`)
  7.  
  8. --
  9. -- Volcar la base de datos para la tabla `distrito`
  10. --
  11.  
  12.  
  13. -- --------------------------------------------------------
  14.  
  15. --
  16. -- Estructura de tabla para la tabla `pais`
  17. --
  18.  
  19. CREATE TABLE IF NOT EXISTS `pais` (
  20.   `id_pais` int(11) NOT NULL AUTO_INCREMENT,
  21.   `id_region` int(11) NOT NULL,
  22.   `descripcion` varchar(60) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL,
  23.   PRIMARY KEY (`id_pais`),
  24.   UNIQUE KEY `id_region` (`id_region`)
  25.  
  26. --
  27. -- Volcar la base de datos para la tabla `pais`
  28. --
  29.  
  30. INSERT INTO `pais` (`id_pais`, `id_region`, `descripcion`) VALUES
  31. (1, 1, 'China');
  32.  
  33. -- --------------------------------------------------------
  34.  
  35. --
  36. -- Estructura de tabla para la tabla `region`
  37. --
  38.  
  39. CREATE TABLE IF NOT EXISTS `region` (
  40.   `id_region` int(11) NOT NULL AUTO_INCREMENT,
  41.   `descripcion` varchar(60) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL,
  42.   PRIMARY KEY (`id_region`)
  43.  
  44. --
  45. -- Volcar la base de datos para la tabla `region`
  46. --
  47.  
  48. INSERT INTO `region` (`id_region`, `descripcion`) VALUES
  49. (1, 'Asia'),
  50. (2, 'America'),
  51. (3, 'Europa'),
  52. (4, 'Africa'),
  53. (5, 'Oceania');
  54.  
  55. --
  56. -- Filtros para las tablas descargadas (dump)
  57. --
  58.  
  59. --
  60. -- Filtros para la tabla `distrito`
  61. --
  62. ALTER TABLE `distrito`
  63.   ADD CONSTRAINT `distrito_ibfk_1` FOREIGN KEY (`id_pais`) REFERENCES `pais` (`id_pais`) ON DELETE CASCADE ON UPDATE CASCADE;
  64.  
  65. --
  66. -- Filtros para la tabla `pais`
  67. --
  68. ALTER TABLE `pais`
  69.   ADD CONSTRAINT `pais_ibfk_1` FOREIGN KEY (`id_region`) REFERENCES `region` (`id_region`) ON DELETE CASCADE ON UPDATE CASCADE;

Última edición por gnzsoloyo; 15/06/2013 a las 19:11