Question: I have a user table, and I have 5 records.

I deleted two records, then executed the rollback command, it executed successfully.

But that deleted two records not recovered.

The user table engine is [InnoDB](http://en.wikipedia.org/wiki/InnoDB).

Answer: 
If you're using MySQL Workbench you can turn off Auto-commit transactions in 'Query' tab.
And don't forget to use "COMMIT;" after the Query which you need to rollback.
Even for me rollback was not working for InnoDB engine.  

But adding `begin;` statement after `start transaction;` made the fix.

**This worked for me**

```sql
SET autocommit = 0;
start transaction;
begin;
-- DML query goes here
rollback;
SET autocommit = 1;

```

But

**This doesn't worked for me**

```sql
SET autocommit = 0;
start transaction;
-- DML query goes here
rollback;
SET autocommit = 1;

```

Really i don't know the reason, If anyone knows please comment here.