U
Usuario eliminado 174876
Hola,
Soy novato en esto, así que por aquí os comento mi caso particular.
Quiero crear una Base de Datos basada en un modelo relacional.
Lo que quiero poner en relación es lo siguiente: "Primero, creo una tabla con las Comunidades y ciudades Autónomas de España, la denomino "autonomias". En segundo lugar, creo una segunda tabla vinculada a la tabla anterior, pero con las provincias de esas Comunidades Autónomas, y la denomino "provincias". Finalmente, y como bien os podéis imaginar, creo una tercera tabla con los municipios contenidos dentro de cada una de las provincias anteriores."
De esta manera, dentro de la tabla "municipios", tendríamos contenido la provincia y CC.AA. a las que pertenece dicho municipio.
Por ejemplo, la localidad de Aranda de Duero (id_municipio: 09018), pertenecería a la provincia Burgos (id_provincia: 9) y a la Comunidad Autónoma de Castilla y León (id_autonomia: 6).
Lo que he hecho ha sido cargar el siguiente código en la Consola SQL de phpmyadmin:
Y debería quedar algo como esto...

Hasta ahí todo correcto.
Pero cuando voy a importar los datos desde un archivo OpenDocument, me indica el siguiente error en la tablar "municipios":
#1452 - Cannot add or update a child row: a foreign key constraint fails (`pruebas`.`municipios`, CONSTRAINT `municipios_ibfk_1` FOREIGN KEY (`id_provincia`) REFERENCES `provincias` (`id_provincia`))
O sea, con Comunidades Autónomas y con Provincias, los datos se cargan correctamente.
Pero cuando importo los datos con Municipios me indica el error anterior.
Estoy pensando que el problema viene directamente de la forma en cómo relaciono una tabla con otra, y por eso me da error.
Debe haber algo en el script del código SQL que no está bien programado.
Por favor, mirad a ver si podéis echarlo un vistazo, y asesorarme en ese sentido.
Creo que en la última sentencia de la tabla "municipios" debería añadir lo siguiente.
Muchísimas gracias de antemano por tomaros un tiempo en leer mi artículo.
Un saludo.
Soy novato en esto, así que por aquí os comento mi caso particular.
Quiero crear una Base de Datos basada en un modelo relacional.
Lo que quiero poner en relación es lo siguiente: "Primero, creo una tabla con las Comunidades y ciudades Autónomas de España, la denomino "autonomias". En segundo lugar, creo una segunda tabla vinculada a la tabla anterior, pero con las provincias de esas Comunidades Autónomas, y la denomino "provincias". Finalmente, y como bien os podéis imaginar, creo una tercera tabla con los municipios contenidos dentro de cada una de las provincias anteriores."
De esta manera, dentro de la tabla "municipios", tendríamos contenido la provincia y CC.AA. a las que pertenece dicho municipio.
Por ejemplo, la localidad de Aranda de Duero (id_municipio: 09018), pertenecería a la provincia Burgos (id_provincia: 9) y a la Comunidad Autónoma de Castilla y León (id_autonomia: 6).
Lo que he hecho ha sido cargar el siguiente código en la Consola SQL de phpmyadmin:
Insertar CODE, HTML o PHP:
DROP TABLE IF EXISTS autonomias;
CREATE TABLE autonomias (
id_autonomia TINYINT(2) UNSIGNED NOT NULL AUTO_INCREMENT,
autonomia VARCHAR(32) NOT NULL,
PRIMARY KEY(id_autonomia, autonomia)
) ENGINE=InnoDB;
DROP TABLE IF EXISTS provincias;
CREATE TABLE provincias (
id_provincia TINYINT(2) UNSIGNED NOT NULL AUTO_INCREMENT,
id_autonomia TINYINT(2) UNSIGNED NOT NULL,
provincia VARCHAR(24) NOT NULL,
PRIMARY KEY(id_provincia, provincia),
INDEX provincias_FK(id_autonomia),
FOREIGN KEY(id_autonomia) REFERENCES autonomias(id_autonomia)
) ENGINE=InnoDB;
DROP TABLE IF EXISTS municipios;
CREATE TABLE municipios (
id_municipio MEDIUMINT(5) UNSIGNED NOT NULL,
id_provincia TINYINT(2) UNSIGNED NOT NULL,
municipio VARCHAR(54) NOT NULL,
PRIMARY KEY(id_municipio, municipio),
INDEX municipios_FK(id_provincia),
FOREIGN KEY(id_provincia) REFERENCES provincias(id_provincia)
) ENGINE=InnoDB;
Y debería quedar algo como esto...

Hasta ahí todo correcto.
Pero cuando voy a importar los datos desde un archivo OpenDocument, me indica el siguiente error en la tablar "municipios":
#1452 - Cannot add or update a child row: a foreign key constraint fails (`pruebas`.`municipios`, CONSTRAINT `municipios_ibfk_1` FOREIGN KEY (`id_provincia`) REFERENCES `provincias` (`id_provincia`))
O sea, con Comunidades Autónomas y con Provincias, los datos se cargan correctamente.
Pero cuando importo los datos con Municipios me indica el error anterior.
Estoy pensando que el problema viene directamente de la forma en cómo relaciono una tabla con otra, y por eso me da error.
Debe haber algo en el script del código SQL que no está bien programado.
Por favor, mirad a ver si podéis echarlo un vistazo, y asesorarme en ese sentido.
Creo que en la última sentencia de la tabla "municipios" debería añadir lo siguiente.
Insertar CODE, HTML o PHP:
...
PRIMARY KEY(id_municipio, municipio),
INDEX municipios_FK(id_provincia),
FOREIGN KEY(id_provincia) REFERENCES provincias(id_provincia) [B]REFERENCES autonomias[/B]
...
Muchísimas gracias de antemano por tomaros un tiempo en leer mi artículo.
Un saludo.
Última edición por un moderador: