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

mysql foreign key no funciona

Estas en el tema de mysql foreign key no funciona en el foro de Mysql en Foros del Web. hola estoy intentando crear una base de datos relacional en mysql pero los foreign key no funcionan bien creo ejemplo @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver ...
  #1 (permalink)  
Antiguo 16/10/2011, 07:01
Avatar de j84625  
Fecha de Ingreso: junio-2008
Ubicación: Valencia
Mensajes: 170
Antigüedad: 15 años, 10 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
  #2 (permalink)  
Antiguo 16/10/2011, 07:27
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: mysql foreign key no funciona

Lo he probado cambiando TYPE por ENGINE en la creación de las tablas, es decir, uso ENGINE = InnoDB en ambas, y funciona bien. Prueba tú a ver qué ocurre.
  #3 (permalink)  
Antiguo 16/10/2011, 15:55
Avatar de j84625  
Fecha de Ingreso: junio-2008
Ubicación: Valencia
Mensajes: 170
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: mysql foreign key no funciona

me pasa igual se lo sigue comiendo el registro y no me da ningún error

el error era por que estaba escrito en mayúsculas
Código MySQL:
Ver original 

que cosa mas rara jejej

Última edición por j84625; 16/10/2011 a las 16:01
  #4 (permalink)  
Antiguo 16/10/2011, 16:19
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: mysql foreign key no funciona

Rara no, si el MySQL está instalado en Linux. Linux es sensible a mayúsculas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: key, sql, tabla, foreignkey
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 20:37.