Quisiera saber como eliminar registros de dos tablas diferentes de una base de datos.
Estoy usando PHP y MySQL.
| ||||
Yo tengo una tabla llamada categoría (con los campos id y nombre) y otra tabla llamada productos (con los campos id, idcat, producto, precio y descripcion) Por ejemplo: yo quiero eliminar la categoría con id '4' y que además se borren todos los productos que que en idcat tengan el valor '4' . ¿Esposible lograr esto? |
| ||||
Cuando haces eso puedes tener problemas de integridad referencial si borras la categoría 4 y por algún motivo se interrumpe la ejecución del script en ese punto antes de borrar también los productos con idcat=4. Esto porque habrá productos que son de la categoría 4... y esta categoría no existe!!... ese es un problema de integridad referencial. Si utilizas Mysql 4, puedes utilizar transacciones http://www.mysql-hispano.org/page.php?id=26 Y si no... de todas maneras puedes intentar eliminar primero los productos y luego la categoría. Código PHP: |
| |||
Lo que comentas se soluciona en el diseño de la base de datos.... esto es que pongas un porcedimiento almacenado para que los registros se borren en cascada... pienso que es lo mas conveniente...... ---------------------------------------------------NO HAY CUCHARA------------------------------------------------------------- |
| ||||
Bueno... en realidad lo que debes utilizar es el soporte de integridad referencial que trae Mysql.... eso es "lo de la cascada". Lee este artículo... y lo que no entiendas lo posteas... pero te pido que lo leas antes para poder entenderte mejor. Aquí se explica todo bastante bien. http://www.mysql-hispano.org/page.php?id=27 Saludos |
| |||
Cita: Lamentablemente .. Mysql no soporta procedimientos almacenados (ni triggers - disparadores) y bien poco el tema de integridad referencial (salvo que uses tablas Innodb como menciona el link que dejó jpinedo).
Iniciado por skywaker Lo que comentas se soluciona en el diseño de la base de datos.... esto es que pongas un porcedimiento almacenado para que los registros se borren en cascada... pienso que es lo mas conveniente...... ---------------------------------------------------NO HAY CUCHARA------------------------------------------------------------- Un saludo, |