FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Dolphin y foreign key
Posts: 29
Joined: Mon Jan 14, 2019 11:43 AM
Dolphin y foreign key
Posted: Wed Sep 04, 2019 11:13 AM

Hola

Alguien tiene algún ejemplo, de como utilizar foreign key con dolphin ? estoy un poco perdido, he creado la clave en la tabla, pero no me acaba de funcionar.

Un saludo,
Gabriel

Harbour
Fwh 19.05

Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: Dolphin y foreign key
Posted: Wed Sep 04, 2019 12:21 PM

Hola Gabriel:
Las Foreing Key te sirven para mantener la integridad referencial en las tablas, o incluso mantener de forma automatica la relacion en tablas cabecera-detalle.
Con Dolphin nos va a respetar las reglas que hayamos indicado en las foreing key, tales como no permitir borrar de una tabla maestra si asi lo indica la regla, o hacer un borrado en cascada, cuando lo indiquemos asi.
Ejemplo:
ALTER TABLE clientes
ADD FOREIGN KEY (categoria) REFERENCES categorias(id);
Esto hara que el campo categoria de la tabla clientes, no permita ingresar un valor que no este en la tabla categorias.
Otro ejemplo:
ALTER TABLE clientes
ADD FOREIGN KEY (categoria) REFERENCES categorias(id) ON UPDATE CASCADE;
Esto hara que el campo categoria de la tabla clientes, no permita ingresar un valor que no este en la tabla categorias y que ademas si modifico el id de la categoria en la tabla de categorias, modificara automaticamente en todos los clientes que tengan ese codigo de categoria.
ALTER TABLE clientes
ADD FOREIGN KEY (categoria) REFERENCES categorias(id) ON DELETE CASCADE;
Se pueden combinar las opciones.
ALTER TABLE clientes
ADD FOREIGN KEY (categoria) REFERENCES categorias(id) ON UPDATE RESTRICT ON DELETE CASCADE;
Con dolphin podemos capturar los errores en caso de que la operatoria quiera romper una regla definida en la foreing key.
Espero haber sido de ayuda...Cualquier duda a tu disposicion

Posts: 29
Joined: Mon Jan 14, 2019 11:43 AM
Re: Dolphin y foreign key
Posted: Wed Sep 04, 2019 06:34 PM

Gracias Cesar por la ayuda,

Si hago desde dolphin un oTabla:delete y quiero eliminar la factura, también me elimina el detalle de la factura ?

Tengo dos tablas facturas y detalles, el foreign key lo tengo por el id, lo estoy haciendo bien ?

Funciona en tablas MyISAM ?

Un saludo,
Gabriel

Harbour
Fwh 19.05

Posts: 84
Joined: Wed Nov 09, 2005 11:22 PM
Re: Dolphin y foreign key
Posted: Thu Sep 05, 2019 04:06 PM

Ola Gabriel,

Si, se usares FOREIGN KEY con la opción ON DELETE CASCADE, ao eliminar la factura los detalles tambien serán eliminados.
Funciona en MyIsam. Note: la tabla principal e las tablas secundarias devem usar lo mismo motor.
Todos MyIsam o todos InnoDb.
Si, siempre el ID como referencia.

Saludos.

Posts: 29
Joined: Mon Jan 14, 2019 11:43 AM
Re: Dolphin y foreign key
Posted: Sat Sep 07, 2019 11:27 AM

Gracias por la ayuda !!!!

Un saludo,
Gabriel

Continue the discussion