From: miguel solórzano Date: March 25 2003 5:42pm Subject: Re: relaciones entre columnas List-Archive: http://lists.mysql.com/mysql-es/11 Message-Id: <5.2.0.9.0.20030325143123.02a63df8@pop.mgc.terra.com.br> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1"; format=flowed Content-Transfer-Encoding: quoted-printable At 08:40 25/03/2003 -0300, Jorge Carlos Franco wrote: Hola, >segun lo que he leido hasta el momento (que no es mucho) he podido=20 >entender que para que una tabla este relacionada con otra debe tener una=20 >columna en comun con la tabla con la cual la quiero relacionar por ejemplo. Bien primero t=FA necesitas usar el tipo de tablas llamada InnoDB para poder usar integridad referencial, las l=EDneas comenzando con # son mis comentarios: mysql> create table padres (id_padres int auto_increment not null -> primary key, -> nombre char(40), -> apellido char(25), -> edad int) type=3Dinnodb; Query OK, 0 rows affected (0.06 sec) mysql> create table hijos (id_padres int not null, id_hijos int -> auto_increment not null -> primary key, -> nombre char(40), -> apellido char(25), -> edad int, -> index par_id (id_padres), foreign key (id_padres) -> references padres(id_padres) on update cascade) type=3Dinnodb; Query OK, 0 rows affected (0.17 sec) # nota que el campo id_padres son los primeros en cada tabla mysql> insert into -> padres -> values -> ("","jos=E9", "diaz", 45); Query OK, 1 row affected (0.06 sec) mysql> insert into -> hijos -> values -> (1,"","carlos", "diaz", 10); Query OK, 1 row affected (0.05 sec) # ahora voy a probar la integridad referencial tentando remover # en la tabla padres el registro que tiene registros en la tabla # hijos, eso debe ser negado: mysql> delete from padres where id_padres=3D1; ERROR 1217: Cannot delete a parent row: a foreign key constraint fails # eso prueba la referencia # para hacer eso posible es necesario remover los campos relacionados # en la tabla hijos saludos, --=20 Regards, __ ___ ___ ____ __ / |/ /_ __/ __/ __ \/ / Miguel Angel Sol=F3rzano / /|_/ / // /\ \/ /_/ / /__ S=E3o Paulo - Brazil /_/ /_/\_, /___/\___\_\___/ <___/ www.mysql.com=20