Problemas con Foreign Keys
Publicado por Fran (1 intervención) el 17/06/2005 17:16:36
Hola amigos, mi problema es el siguiente creo dos tablas y una esta referencianda a la otra mediante una clave foranea, el caso es q me crea las tablas perfectamente y puedo introducir datos bien, pero cuando si quiero meter un dato en la tabla de la foreign key, y el dato el cual es referenciado no existe en la otra tabla, me lo introduce y me debería salir un error de que ese elemento no al q se esta haciendo referencia no existe.
Para crear las tablas utilizo el sgtq codigo:
CREATE TABLE escritor (
id_escritor INT NOT NULL,
nombre VARCHAR(30) NULL,
apellidos VARCHAR(40) NULL,
direccion VARCHAR(100) NULL,
PRIMARY KEY(id_escritor)
) TYPE=InnoDB;
CREATE TABLE poema (
id_poema INT NOT NULL,
id_escritor INT NOT NULL,
titulo VARCHAR(50) NULL,
contenido TEXT NULL,
PRIMARY KEY(id_poema),
INDEX(id_escritor),
FOREIGN KEY(id_escritor) REFERENCES escritor(id_escritor)
ON DELETE CASCADE ON UPDATE CASCADE
) TYPE=InnoDB;
Si introduzco 2 escritores con id 1 y 2 y despues inserto poemas donde el id del escritor es 3 me lo inserta bien. Y no me lo deberia insertar,
Espero q me haya explicado bien.
Un saludo y gracias de antemano.
Para crear las tablas utilizo el sgtq codigo:
CREATE TABLE escritor (
id_escritor INT NOT NULL,
nombre VARCHAR(30) NULL,
apellidos VARCHAR(40) NULL,
direccion VARCHAR(100) NULL,
PRIMARY KEY(id_escritor)
) TYPE=InnoDB;
CREATE TABLE poema (
id_poema INT NOT NULL,
id_escritor INT NOT NULL,
titulo VARCHAR(50) NULL,
contenido TEXT NULL,
PRIMARY KEY(id_poema),
INDEX(id_escritor),
FOREIGN KEY(id_escritor) REFERENCES escritor(id_escritor)
ON DELETE CASCADE ON UPDATE CASCADE
) TYPE=InnoDB;
Si introduzco 2 escritores con id 1 y 2 y despues inserto poemas donde el id del escritor es 3 me lo inserta bien. Y no me lo deberia insertar,
Espero q me haya explicado bien.
Un saludo y gracias de antemano.
Valora esta pregunta


0