模拟mysql查询

时间:2011-09-28 10:10:20

标签: mysql testing

有没有办法测试mysql查询,而无需修改我的数据库?

例如,我可以在没有实际删除任何内容的情况下运行delete from my_table where id=101吗?插入和更新怎么样?

TY

3 个答案:

答案 0 :(得分:25)

您可以在运行查询之前启动事务,然后在运行它们之后回滚。请注意,要执行此操作,您将需要InnoDB或XtraDb表(不适用于MyISAM)。

要启动事务,请向MySQL发送以下语句:

START TRANSACTION;

在查询结束时运行以下语句:

ROLLBACK;

从其他连接的角度来看,永远不会修改您的数据库。您的当前连接将在ROLLBACK之前看到更改,之后将恢复原始状态。

答案 1 :(得分:7)

如果您只想查看将删除多少行,为什么不用'select count(*)'替换'delete'?

答案 2 :(得分:2)

将数据库复制到测试数据库或自动生成导入脚本。您可以在测试数据库上测试任何想要的内容,然后使用脚本或导入再次恢复它。