elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  no me borra la tabla haciendo delete on cascade tabla n:m
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: no me borra la tabla haciendo delete on cascade tabla n:m  (Leído 2,423 veces)
kinos

Desconectado Desconectado

Mensajes: 104



Ver Perfil
no me borra la tabla haciendo delete on cascade tabla n:m
« en: 26 Julio 2010, 14:36 »

Hola buenas:

Tengo dos tablas llamadas "empresas" y otra "clientes". Cuando se produce una venta se introduce una fila en la tabla "ventas" que tiene como índices "idempresas" e "idclientes".
El problema es que cuando quiero borrar una empresa no me elimina las filas de la tabla ventas.
Qué estoy haciendo mal? no sé si estoy poniendo bien delete on cascade... o que ocurre.

Aquí esta el código:

Código
  1. -- -----------------------------------------------------
  2. -- Table `bdd`.`empresas`
  3. -- -----------------------------------------------------
  4. DROP TABLE IF EXISTS `bdd`.`empresas` ;
  5.  
  6. CREATE  TABLE IF NOT EXISTS `bdd`.`empresas` (
  7.  `idempresas` INT NOT NULL AUTO_INCREMENT ,
  8.  PRIMARY KEY (`idempresas`) ,
  9. ENGINE = MyISAM
  10. DEFAULT CHARACTER SET = utf8
  11. COLLATE = utf8_unicode_ci;
  12.  
  13. -- -----------------------------------------------------
  14. -- Table `bdd`.`clientes`
  15. -- -----------------------------------------------------
  16. DROP TABLE IF EXISTS `bdd`.`clientes` ;
  17.  
  18. CREATE  TABLE IF NOT EXISTS `bdd`.`clientes` (
  19.  `idclientes` INT NOT NULL AUTO_INCREMENT ,
  20.  PRIMARY KEY (`idclientes`) ,
  21. ENGINE = MyISAM
  22. DEFAULT CHARACTER SET = utf8
  23. COLLATE = utf8_unicode_ci;
  24.  
  25. -- -----------------------------------------------------
  26. -- Table `bdd`.`ventas`
  27. -- -----------------------------------------------------
  28. DROP TABLE IF EXISTS `bdd`.`ventas` ;
  29.  
  30. CREATE  TABLE IF NOT EXISTS `bdd`.`ventas` (
  31.  `empresas_idempresas` INT NOT NULL ,
  32.  `clientes_idclientes` INT NOT NULL ,
  33.  `venta` INT NOT NULL ,
  34.  PRIMARY KEY (`empresas_idempresas`, `clientes_idclientes`) ,
  35.  CONSTRAINT `fk_empresas_has_ventas`
  36.    FOREIGN KEY (`empresas_idempresas` )
  37.    REFERENCES `bdd`.`empresas` (`idempresas` )
  38.    ON DELETE CASCADE
  39.    ON UPDATE NO ACTION,
  40.  CONSTRAINT `fk_empresas_has_ventas2`
  41.    FOREIGN KEY (`clientes_idclientes` )
  42.    REFERENCES `bdd`.`clientes` (`idclientes` )
  43.    ON DELETE NO ACTION
  44.    ON UPDATE NO ACTION)
  45. ENGINE = MyISAM
  46. DEFAULT CHARACTER SET = utf8
  47. COLLATE = utf8_unicode_ci;
  48.  
  49. CREATE INDEX `fk_empresas_has_ventas` ON `bdd`.`ventas` (`empresas_idempresas` ASC) ;
  50.  
  51. CREATE INDEX `fk_empresas_has_ventas2` ON `bdd`.`ventas` (`clientes_idclientes` ASC) ;
  52.  


En línea

Ari Slash


Desconectado Desconectado

Mensajes: 1.788



Ver Perfil WWW
Re: no me borra la tabla haciendo delete on cascade tabla n:m
« Respuesta #1 en: 28 Julio 2010, 04:04 »

no te los borra pos ser n:m

la primary key de esa tabla se compone de las dos primary key de clientes y empresas
debes de eliminar tambien la fk que viene desde clientes para que desaparezca el registro

pregunta: por que quieres borrar la venta al eliminar la empresa?? no deberia de ser asi


saludos




En línea

kinos

Desconectado Desconectado

Mensajes: 104



Ver Perfil
Re: no me borra la tabla haciendo delete on cascade tabla n:m
« Respuesta #2 en: 31 Julio 2010, 13:05 »

Gracias.

Citar
pregunta: por que quieres borrar la venta al eliminar la empresa?? no debería de ser asi

Perdón por el ejemplo, no le presté atención a la lógica  :-\. Simplemente quería saber el porqué ocurría esto.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Funcion que falla y borra una tabla entera
PHP
zellion 8 2,665 Último mensaje 2 Junio 2011, 11:47
por zellion
2 foreign keys (delete cascade) haciendo referencia a una misma tabla
Bases de Datos
Littl3 1 2,594 Último mensaje 16 Septiembre 2011, 04:57
por fran800m
Cómo relacionar 1 tabla con N tablas
Desarrollo Web
carlosgxs 2 1,729 Último mensaje 6 Abril 2012, 05:57
por carlosgxs
Tabla dentro de tabla.
Java
KenoChile 2 1,075 Último mensaje 10 Agosto 2012, 16:31
por KenoChile
BAT, algun REG DELETE no se borra
Scripting
quico5 7 1,778 Último mensaje 19 Agosto 2012, 21:35
por quico5
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines