by cmsoft » 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