Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Error al insertar datos

Estas en el tema de Error al insertar datos en el foro de Mysql en Foros del Web. Buenas noches, Quiero llenar de datos la tabla provincias pero me da el siguiente error cuando intento hacer el insert @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver ...
  #1 (permalink)  
Antiguo 30/09/2010, 14:20
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Error al insertar datos

Buenas noches,

Quiero llenar de datos la tabla provincias pero me da el siguiente error cuando intento hacer el insert

Código SQL:
Ver original
  1. INSERT INTO `tbl_provincias` (`provincia`, `pais_id`) VALUES
  2. ('Badakhshan', 1),
  3. ('Badghis', 1),
  4. ('Baghlan', 1),
  5. ('Balkh', 1);

Cannot add or update a child row: a foreign key constraint fails (`prueba`.`tbl_provincias`, CONSTRAINT `pais_id` FOREIGN KEY (`pais_id`) REFERENCES `tbl_paises` (`pais_id`) ON DELETE NO ACTION ON UPDATE NO ACTION)

Código SQL:
Ver original
  1. DROP TABLE IF EXISTS `prueba`.`tbl_paises`;
  2. CREATE TABLE  `prueba`.`tbl_paises` (
  3.   `pais_id` SMALLINT(5) UNSIGNED NOT NULL AUTO_INCREMENT,
  4.   `pais` VARCHAR(30) COLLATE utf8_spanish_ci NOT NULL,
  5.   PRIMARY KEY (`pais_id`)
  6. ) ENGINE=InnoDB AUTO_INCREMENT=242 DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci;
  7.  
  8.  
  9. DROP TABLE IF EXISTS `prueba`.`tbl_provincias`;
  10. CREATE TABLE  `prueba`.`tbl_provincias` (
  11.   `provincia_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  12.   `provincia` VARCHAR(100) COLLATE utf8_spanish_ci DEFAULT NULL,
  13.   `pais_id` SMALLINT(5) UNSIGNED NOT NULL,
  14.   PRIMARY KEY (`provincia_id`),
  15.   KEY `pais_id` (`pais_id`),
  16.   CONSTRAINT `pais_id` FOREIGN KEY (`pais_id`) REFERENCES `tbl_paises` (`pais_id`) ON DELETE NO ACTION ON UPDATE NO ACTION
  17. ) ENGINE=InnoDB AUTO_INCREMENT=8645 DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci;

¿Sabéis porque puede ser??

Muchas gracias de antemano!
  #2 (permalink)  
Antiguo 30/09/2010, 14:25
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Error al insertar datos

Quizás que no tienes en la tabl_paises ningún país con pais_id = 1, y eso es previo. No puedes añadir una foreign key de la que no haya una primary key con la que relacionarla. Primero añade el país y luego inténtalo.
  #3 (permalink)  
Antiguo 30/09/2010, 14:36
atrianaster
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Error al insertar datos

Esa es la restricción de integridad referencial CONSTRAINT. Tienes dos tablas tbl_paises y tbl_provincias de uno a muchos, es decir un país tiene muchas provincias como es lógico. Pero no puedes insertar una provincia a un país inexistente, es decir el pais_id del país que vas a insertar en la tabla tbl_provincias tiene que existir en la tabla tbl_paises.

Fijate si la tabla tbl_paises tiene algún país con el id 1.

Saludos.
  #4 (permalink)  
Antiguo 30/09/2010, 16:07
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Respuesta: Error al insertar datos

Muchas gracias a los dos, estebáis en lo cierto, la tabla provincias contenía un error y estaba intentando asignar una provincia a un país que no existía.

Muchas gracias

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:58.