Home   Artículos   Recursos   Foros   
Artíclos recientes publicados en Latindevelopers:

Visual C++: NSDoubleEdit: Un control para el manejo de números decimales en Visual C++.
Visual C++: Implementando una Calculadora en Visual C++
Visual C++: CCommandLine: Una clase para el uso de la linea de comando
Visual C++: Una clase para el manejo del Registro


Enlazar tablas

Foro sobre el popular gestor de base de datos MySQL.

Enlazar tablas

Notapor ximo el 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 latindeveloper el 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
create table tabla1
(
   IdTabla1 int not null auto_increment primary key,
   campo1 varchar(20)
)type=innodb;

create table tabla2
(
   IdTabla1 int not null,
   campo1 varchar(20),
   foreign key tabla1_tabla2 (IdTabla1) references tabla1(IdTabla1)
)type=innodb;

insert into tabla1 values (1,'nombre1');
insert into tabla1 values (2,'nombre2');
insert into tabla1 values (3,'nombre3');

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


en la linea:

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

Generara un error:
Código: Seleccionar todo
mysql> insert into tabla2 values (5,'dato5');
ERROR 1216 (23000): Cannot add or update a child row:
a foreign key constraint fails


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
latindeveloper
Administrador
Administrador
 
Mensajes: 1061
Registrado: Lun Jun 02, 2003 8:30 pm
Ubicación: Peru

Notapor ximo el 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