Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/10/2011, 07:01
Avatar de j84625
j84625
 
Fecha de Ingreso: junio-2008
Ubicación: Valencia
Mensajes: 170
Antigüedad: 15 años, 11 meses
Puntos: 2
mysql foreign key no funciona

hola estoy intentando crear una base de datos relacional en mysql pero los foreign key no funcionan bien creo

ejemplo
Código MySQL:
Ver original
  1. CREATE TABLE clientes
  2.     (
  3.     id_cliente INT NOT NULL AUTO_INCREMENT,
  4.     nombre VARCHAR(30),
  5.     PRIMARY KEY (id_cliente)
  6.     ) TYPE = INNODB;
  7.      
  8.     CREATE TABLE privilegios
  9.     (
  10.     id_privilegio INT NOT NULL AUTO_INCREMENT,
  11.     id_cliente INT NOT NULL,
  12.     privilegio   INT(2),
  13.     PRIMARY KEY(id_privilegio),
  14.     INDEX (id_cliente),
  15.     FOREIGN KEY (id_cliente) REFERENCES clientes(id_cliente)
  16.     ) TYPE = INNODB;
  17.  
  18.     INSERT INTO clientes VALUES (1, 'Pedro Picapiedras');
  19.     INSERT INTO clientes VALUES (2, 'Pablo Marmol');
  20.     INSERT INTO clientes VALUES (3, 'Ana Botella');
  21.  
  22.     INSERT INTO privilegios VALUES (1,1,10);
  23.     INSERT INTO privilegios VALUES (2,3,05);
  24.     INSERT INTO privilegios VALUES (3,2,01);
Hasta ahora ha ido todo bien, pero ¿que pasaría si intentamos insertar un registro en la tabla "privilegios" en el que nos refiramos a un cliente que no exista en la tabla clientes?, vamos a probarlo:
Código MySQL:
Ver original
  1. INSERT INTO privilegios VALUES (4,5,10);

se traga el registro aquí esta el problema me tendría que dar un error y no me da nada