Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Mysql (http://www.forosdelweb.com/f86/)
-   -   Claves foráneas sobre una misma tabla (http://www.forosdelweb.com/f86/claves-foraneas-sobre-misma-tabla-570342/)

garkones 28/03/2008 15:29

Claves foráneas sobre una misma tabla
 
Hola, no consigo que me funcionen las relaciones reflexivas, pongo un ejemplo:

CREATE TABLE `gestionproyectos`.`test` (
`cdemp` char(3) collate utf8_spanish_ci NOT NULL,
`cdjefe` char(3) collate utf8_spanish_ci default NULL,
PRIMARY KEY (`cdemp`),
KEY `cdjefe` (`cdjefe`),
CONSTRAINT `test_ibfk_1` FOREIGN KEY (`cdjefe`) REFERENCES `test` (`cdemp`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci

Añado los datos:
cdemp cdjefe
1 ------ null
2 ------ 1
3 ------ 1

Lo que quiero es que si borro la fila con el codigo de empleado=1 se borren en cascada todos las filas que codigo jefe=1, ¿estoy haciendo algo mal? o es que no puede hacerse esto en MySQL? En Oracle va perfecto.

Un Saludo.

cmarti 29/03/2008 05:52

Re: Claves foráneas sobre una misma tabla
 
Me parece que el problema lo tenés en el null de cdjefe. Cuando asocias una FK, esta no debe contener null (no tiene sentido).

garkones 29/03/2008 08:20

Re: Claves foráneas sobre una misma tabla
 
Cita:

Iniciado por cmarti (Mensaje 2341419)
Me parece que el problema lo tenés en el null de cdjefe. Cuando asocias una FK, esta no debe contener null (no tiene sentido).

En este caso si, hay empleados que no tienen ningún jefe, por tanto cdjefe es null.

De todo modos, si funciona, me he hecho un lío con la edición en mysql-query-browser, al borrar no se actualizaba la pantalla.

Un Saludo y gracias.


La zona horaria es GMT -6. Ahora son las 06:43.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.