MySql: borrado en cascada

Estoy empezando con MySql, lo he instalado en una maquina solaris, voy a integrar apache+PHP+Mysql, ahora mismo tengo todas mis bases de datos en informix, y he encontrado un método bastante bueno para migrar las bases de datos, bueno la pregunta en cuestión es, ¿puedo realizar borrados en cascada si mi base de datos es MyISAM o tengo que crear una tipo InnoDB?
También a ser posible me gustaría si es posible que me aclarases un poco la diferencia entres los dos tipos de bases de datos.

4 respuestas

Respuesta
1
Bueno Primero que todo quiero aclarar que en My Sql no hay relaciones, por tanto no hay borrados en cascada, como tal.
Ahora bien, Mysql tienedos clases de tablas. Las tablas de transacciones seguras y las tablas de transacciones no seguras.
1.) Las tablas de transacciones seguras son las de tipo (InnoDB y BDB)
Ventajas de Las tablas de transacciones seguras
- Se recuperan automáticamente con el log y a partir del backup de la tabla en caso de una falla de hardware
- Puede tener varias sentencias y las acepta al final con Commit
- Puede ejecutar rollbak y omitir los cambios (obviamente si no tiene el modo de autocommit)
- Si una actualización falla todos los cambios son restaurados
2.) Las las tablas de transacciones no seguras son las de tipo (HEAP, ISAM, MERGE, y MyISAM )
Ventajas
- Es mucho más rápida por que no tiene sobrecarga de transacciones
- Utilizará menos memoria para hacer actualizaciones.
- Utilizará menos memoria para hacer actualizaciones.
- Utilizará menos espacio de disco pues no hay gastos indirectos de transacciones.
Las tablas de tipo MyISAM son el tipo por defecto con que se crean las tablas en mysql. Las tablas tipo ISAM es el más antiguo y usado en versiones anteriores ala 3.23. Las tablas HEAP crea tablas en memoria que utilizan filas de longitud fija, lo que las hace más rápida. Desaparecen cuando el servidor termina.
Las tablas MyIsam se pueden copiar de una maquina a otra incluso si tiene diferentes arquitectura por que tiene el byte menor primero.
Para chequear las tablas de tipo ISAm use isamchk y si la tabla es de tipo MyISAM use myisamchk para verificar las tablas.
Muchas gracias por la aclaración, pero me surge otra pregunta, me voy a inclinar por la utilización de tablas tipo MyISAM.
¿No necesito declarar ninguna "foreign key" no?
Gracias,
josc
Mysql no tiene la capacidad de creación de llaves foráneas. Por tanto no Puedes declarar, ni borrar, ni modificar llaves foráneas pues simplemente no existen.
Respuesta
1
Como tengo entendido, todavía las tablas de tipo MyISAM; no soportan Foreign Keys para hacer borrados en cascada, y las tablas InnoDB si, pero solo en el mySQL max.
La mayor diferencia entre los dos tipos de tablas, y lo que motiva sus razones de ser, es que las tablas del tipo InnoDB soportan el uso de Transacciones, mientras que las tablas MyISAM, no.
¿Ventajas y desventajas? BUeno, te puedo decir que las tablas que soportan Transacciones, lo hacen con un costo de espacio y memoria, que no utilizan las tablas sin Transacciones, que son mucho más veloces en inserts y uploads.
Respuesta
1
Lamentablemente no se puede como informix ya que MySQL usa el ANSI SQL y como podrás percatar no se puede
Lo que puedes hacer es que cuando insertas en la tabla debes hacer un contral antes de la inserción verificnado si el precio es mayor que cero
Respuesta
1
Hi,
Mira, disculpa por la demora pero no encontré la forma de agregar un CHECK en un CREATE TABLE. Los manuales dicen que se agrega igual que en Informix pero lo he probado y no pasa nada.
Ahh, otra cosa, busque en grupos de noticias y mucha gente tiene tu inquietud pero no hay soluciones.
Si encuentro algo te lo mando. Cualquier consulta que tengas no dudes en preguntarme.
Nahuelon..
Gracias por la respuesta, me han comentado que no se puede hacer un check dentro de un CREATE TABLE, que lo que puedo hacer es controlar el valor que introducen en la tabla con el código que programo mis páginas, y me ha parecido buena idea, de todas maneras muchas gracias por responder,
Josc

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas