Os cuento un problema que tengo a ver si alguno-a pudiera echarme una mano.
Doy de alta una base de datos donde le doy unas restricciones (en este caso ON UPDATE CASCADE) y luego trato de incluir algunos elementos a una de sus tablas.
Os dejo un ejemplo de algunas tablas de las que utilizo:
Código:
El caso es que no consigo que realice la restricción, osea, cuando modifico algún elemento en la tabla categoria no se modifica este mismo elemento en las otras tablas, es como si no me hubiese cogido el codigo del ALTER TABLE, sin embargo no obtengo ningún mensaje de error ni nada por el estilo.DROP DATABASE IF EXISTS Entradas ; CREATE DATABASE Entradas ; USE Entradas ; DROP TABLE IF EXISTS Fuente ; DROP TABLE IF EXISTS Categoria ; DROP TABLE IF EXISTS Entrada ; CREATE TABLE Fuente ( id_fuente INTEGER NOT NULL AUTO_INCREMENT, nombre_fuente VARCHAR(250) NOT NULL, resumen VARCHAR(255), PRIMARY KEY (id_fuente, nombre_fuente) ) ; CREATE TABLE Categoria ( id_categoria INTEGER NOT NULL AUTO_INCREMENT, nombre_categoria VARCHAR(50) NOT NULL, PRIMARY KEY (id_categoria, nombre_categoria) ) ; CREATE TABLE Entrada ( id_entrada INTEGER NOT NULL AUTO_INCREMENT, nombre_entrada VARCHAR(100) NOT NULL, nombre_categoria VARCHAR(50), nombre_fuente VARCHAR(250), PRIMARY KEY (id_entrada, nombre_entrada), KEY (nombre_categoria), KEY (nombre_fuente) ) ; ALTER TABLE Entrada ADD CONSTRAINT FK_Entrada_Categoria FOREIGN KEY (nombre_categoria) REFERENCES Categoria (id_categoria, nombre_categoria) ON UPDATE CASCADE ; ALTER TABLE Entrada ADD CONSTRAINT FK_Entrada_Fuente FOREIGN KEY (nombre_fuente) REFERENCES Fuente (id_fuente, nombre_fuente) ON UPDATE CASCADE ; INSERT INTO `categoria` (`id_categoria`, `nombre_categoria`) VALUES (1, 'Conciertos'), (2, 'Teatro'), (3, 'Cine'), (4, 'Misical');
Y tampoco consigo que me dé de alta los elementos que le pongo a la tabla "categoria".
No sé si estoy poniendo algo mal en el DDL, me he mirado los apuntes que tenia por aquí y no encuentro que tenga algo mal.
Espero podais echarme una mano.
Un saludo.
Alex.