Enlazar tablas

Foro sobre el popular gestor de base de datos MySQL.

Enlazar tablas

Notapor ximo » Jue Jul 07, 2005 4:49 am

Como enlazo las tablas en la linea de comandos o en el MySQL Administrator, solo con el nombre de los campos ya se enlazan?, es que no lo entiendo pq ningún manual dice nada al respecto.



Lo siento es que soy un novatillo . Gracias.
ximo
Novato
Novato
 
Mensajes: 4
Registrado: Jue Jul 07, 2005 4:45 am


Re: Enlazar tablas

Notapor latindev » Jue Jul 07, 2005 11:44 am

En realidad el enlace, como vos le llamas, se denomina clave foranea (foreign key) y sirve para controlar la integridad referencial.

Por ejemplo: el siguiente codigo muestra dos tablas con relacion de integridad referencial, en la segunda tabla no es posible insertar un campo que no esté tambien en la primera tabla.

Código: Seleccionar todo
  1. create table tabla1

  2. (


  3.    campo1 varchar(20)


  4.  

  5. create table tabla2

  6. (

  7.    IdTabla1 int not null,

  8.    campo1 varchar(20),

  9.    foreign key tabla1_tabla2 (IdTabla1) references tabla1(IdTabla1)


  10.  

  11. insert into tabla1 values (1,'nombre1');

  12. insert into tabla1 values (2,'nombre2');

  13. insert into tabla1 values (3,'nombre3');

  14.  

  15. insert into tabla2 values (3,'dato3');

  16. insert into tabla2 values (5,'dato5');

  17.  



en la linea:

insert into tabla2 values (5,'dato5');

Generara un error:
Código: Seleccionar todo
  1. mysql> insert into tabla2 values (5,'dato5');

  2. ERROR 1216 (23000): Cannot add or update a child row:

  3. a foreign key constraint fails

  4.  



Debido a que el valor 5 no esta insertado en la primera tabla.

Espero haberme explicado, si no es asi puedes volver a escribir.
Imagen
Avatar de Usuario
latindev
Administrador
Administrador
 
Mensajes: 1062
Registrado: Lun Jun 02, 2003 8:30 pm
Ubicación: Peru


Notapor ximo » Mar Jul 12, 2005 4:51 am

esa era la expresión que buscaba, clave foranea o clave ajena, a ver si lo entiendo, gracias
ximo
Novato
Novato
 
Mensajes: 4
Registrado: Jue Jul 07, 2005 4:45 am


    

Volver a MySQL

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados