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

Claves foraneas del tipo varchar

Estas en el tema de Claves foraneas del tipo varchar en el foro de Mysql en Foros del Web. Buenas!!! Tengo una duda existencial ¿Què tengo que hacer para poder relacionar como clave foranea dos campos del tipo varchar(45)? Estoy diseñando una base de ...
  #1 (permalink)  
Antiguo 22/07/2009, 12:53
 
Fecha de Ingreso: febrero-2009
Mensajes: 30
Antigüedad: 15 años, 1 mes
Puntos: 0
Claves foraneas del tipo varchar

Buenas!!!

Tengo una duda existencial ¿Què tengo que hacer para poder relacionar como clave foranea dos campos del tipo varchar(45)?

Estoy diseñando una base de datos y tengo una tabla llamada "VENTAS" en ella un campo llamado "cliente" y quiero que sirva de clave foranea a una tabla llamada "CLIENTES" a través del campo "usuario" de tipo varchar(45). Sin embargo cuando intento hacer la relación me sale un error del tipo 1005 en mysql

Ya me encontré con esta situación antes en la misma base de datos y lo solucione indexando el campo que no era clave, ahora he intentado hacer lo mismo indexando el campo "clientes" de la tabla "VENTAS" (el otro al ser clave primaria ya está indexado automáticamente) y sigue saliendo el mismo error.

No os pongo el código porque lo estoy haciendo con MysqlAdministrator. Pero ya me fije en la codificación de la table (ambas son utf8 e innoBD) y en ambos campos están codificados como tipo VARCHAR(45) y no nulos

¿Podeis ver que es lo que falta? Estoy ya totalmente atascada
  #2 (permalink)  
Antiguo 22/07/2009, 13:26
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 1 mes
Puntos: 360
Respuesta: Claves foraneas del tipo varchar

Código sql:
Ver original
  1. mysql> CREATE TABLE tabla_n1(id VARCHAR(45) PRIMARY KEY);
  2. Query OK, 0 ROWS affected (0.02 sec)
  3.  
  4. mysql> CREATE TABLE tabla_n2(id VARCHAR(45), FOREIGN KEY (id) REFERENCES tabla_n1(id));
  5. Query OK, 0 ROWS affected (0.08 sec)

así?
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
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 09:38.