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
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
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
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
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.
Gracias por la ayuda !!!!
Un saludo,
Gabriel