有没有办法测试mysql查询,而无需修改我的数据库?
例如,我可以在没有实际删除任何内容的情况下运行delete from my_table where id=101
吗?插入和更新怎么样?
TY
答案 0 :(得分:25)
您可以在运行查询之前启动事务,然后在运行它们之后回滚。请注意,要执行此操作,您将需要InnoDB或XtraDb表(不适用于MyISAM)。
要启动事务,请向MySQL发送以下语句:
START TRANSACTION;
在查询结束时运行以下语句:
ROLLBACK;
从其他连接的角度来看,永远不会修改您的数据库。您的当前连接将在ROLLBACK之前看到更改,之后将恢复原始状态。
答案 1 :(得分:7)
如果您只想查看将删除多少行,为什么不用'select count(*)'替换'delete'?
答案 2 :(得分:2)
将数据库复制到测试数据库或自动生成导入脚本。您可以在测试数据库上测试任何想要的内容,然后使用脚本或导入再次恢复它。