Utilizar tablas InnoDB en MySQL para Windows

mysql.jpgLos tipos de tablas que generamos por defecto en MySQL son del tipo MyISAM. El problema está cuando con ese tipo de tablas queremos realizar Transacciones (del tipo todo o nada) o utilizar claves foráneas (foreign keys). Para los q estan perdidos les resumo con un ejemplo…


Movimiento de un banco, Ana hace una transferencia de 10 pesos a Juan.

 UPDATE TABLE cajadeahorro SET saldo = saldo - 10 WHERE user = "Ana"
 UPDATE TABLE cajadeahorro SET saldo = saldo + 10 WHERE user = "Juan"

esto es un ejemplo, obviamente primero hay q verificar si Ana tiene 10 pesos en la cuenta… el tema es que son 2 Consultas DISTINTAS, eso implica que puede suceder el caso de que le debitemos la plata a Ana y el sistema se cuelga (la famosa frase “se cayo el sistema”), oh! y a donde fueron a parar esos 10 pesos??? a ningun lado, porque cuando se reinicia no vuelve nunca del punto donde estaba, entonces los 10 pesos se pierden (en realidad se los queda el banco, jeje) o le descuentan otros 10 pesos a Ana…
para solucionar esto se inventaron las transacciones, que son un grupo de consultas que se ejecutan todas o no se ejecuta ninguna. es decir, un error en el medio vuelve a la bdd al punto inicial, o visto de otra manera, todos los cambios se realizan una sola vez al final.
Ahora se dieron cuenta que es necesario no? bueno para eso el tipo de tabla tiene que ser InnoDB. Para ello podemos crearla directamente con ese tipo o modificar la que ya tenemos. El problema es que cualquiera de los dos casos no funciona en MySQL de Windows (con AppServ) porque hay que editar el archivo my.ini de c:\Windows\ eliminando o comentando (con el caracter #) la linea que dice skip-innodb. Ahora podemos aplicar ALTER TABLE cajadeahorro ENGINE=InnoDB, o crear una nueva tabla y cargarle de vuelta todos los datos.
Bueno, un tutorial más que me sirve tambien para poder acordarme…p.d: hay que reiniciar el motor de MySQL despues de modificar el archivo my.ini. era obvio, por eso es postdata…



2 Responses to “Utilizar tablas InnoDB en MySQL para Windows”

  1. Rodrigo Says:

    Muy bien explicado, gracias =)

  2. Gerty Says:

    como crear un procedimiento almacenado Mysql y como llamarlo en php, un ejemplo porfavor.
    Ventajas y desventajar de un procedimieto almacenado, cuando usarlo y cuando..
    Gracias

Deja tu comentario

*