2011-09-28 16 views
10

¿Hay alguna forma de probar las consultas de mysql sin modificar mi base de datos?Simular consultas de mysql

Por ejemplo, ¿puedo ejecutar un delete from my_table where id=101 sin eliminar nada? ¿Qué hay de insertar y actualizar?

TY

+0

¿Por qué es necesario probarlos? –

+2

@Pekka 웃 Verificar manualmente que una actualización está haciendo lo que crees que debería hacerse antes de que realmente lo hagas. – Will

Respuesta

17

Puede iniciar una transacción antes de ejecutar sus consultas y luego deshacerlas después de ejecutarlas. Tenga en cuenta que para hacer esto necesitará tablas InnoDB o XtraDb (no funcionará en MyISAM).

Para iniciar una transacción enviar a MySQL la siguiente declaración:

START TRANSACTION; 

Y al final de sus consultas ejecute la siguiente instrucción:

ROLLBACK; 

Su base de datos nunca serán modificadas desde el punto de vista de otras conexiones. Su conexión actual verá los cambios hasta ROLLBACK, y después de eso se restaurará el estado original.

+4

Muy bien, ahora si decido que me gustan los resultados, ¿cómo los guardo? 'FIN TRANSACCIÓN;'? Vaya, ahora tengo que ir hasta Google ... * vagabundea * La respuesta fue ['COMMIT'] (http://dev.mysql.com/doc/refman/5.6/en/commit.html) . – Zenexer

1

Copie su base de datos para una prueba de base de datos o generar automáticamente una importación-script. Entonces puede probar lo que quiera en la base de datos de prueba y restaurarlo nuevamente utilizando el script o la importación.

5

Si solo quiere ver cuántas filas se eliminarán, ¿por qué no sustituir 'eliminar' por 'seleccionar conteo (*)'?