Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/09/2009, 07:58
Avatar de huesos52
huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 16 años, 1 mes
Puntos: 360
Respuesta: Delete u poco extraño

Aunque no te explicas bien, creo saber cual es tu problema.

tienes una relación de un campo con otro campo en la misma tabla. y necesitas que al borrar un código padre se borren los hijos. te pongo un ejemplo y me dices si es lo que necesitas. Para esto, es necesario hacer uso de la sentencia ON DELETE CASCADE en la creación de la tabla.

Código mysql:
Ver original
  1. mysql> create table categorias(cod integer primary key,nombre text,padre_cat integer,foreign key (padre_cat) references categorias(cod) on delete cascade);
  2. Query OK, 0 rows affected (0.02 sec)
  3.  
  4. mysql> insert into categorias values(1,'daniel',null);
  5. Query OK, 1 row affected (0.00 sec)
  6.  
  7. mysql> insert into categorias values(2,'sara',1);
  8. Query OK, 1 row affected (0.00 sec)
  9.  
  10. mysql> insert into categorias values(3,'taty',null);
  11. Query OK, 1 row affected (0.00 sec)
  12.  
  13. mysql> select *from categorias;
  14. +-----+--------+-----------+
  15. | cod | nombre | padre_cat |
  16. +-----+--------+-----------+
  17. |   1 | daniel |      NULL |
  18. |   2 | sara   |         1 |
  19. |   3 | taty   |      NULL |
  20. +-----+--------+-----------+
  21. 3 rows in set (0.00 sec)
  22.  
  23. mysql> delete from categorias where cod=1;
  24. Query OK, 1 row affected (0.01 sec)
  25.  
  26. mysql> select *from categorias;
  27. +-----+--------+-----------+
  28. | cod | nombre | padre_cat |
  29. +-----+--------+-----------+
  30. |   3 | taty   |      NULL |
  31. +-----+--------+-----------+
  32. 1 row in set (0.00 sec)
  33.  
  34. mysql>

Como ves, el código 1 se borró y el 2 que tenía el padre como código 1 también se borró. Queda el código 3 que no tiene relación directa con uno.

es lo que buscas?

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming