2012-11-18 29 views
5

(MySQL 5.5,InnoDB表)爲什麼我不能回滾到保存點或以前的begin語句?ALTER TABLE後MySQL Shell中的回滾無效

mysql> set autocommit=0; 
Query OK, 0 rows affected (0.00 sec) 

mysql> start transaction; 
Query OK, 0 rows affected (0.00 sec) 

mysql> savepoint id; 
Query OK, 0 rows affected (0.00 sec) 

mysql> alter table sg_Section add column (published tinyint(1) default 0); 
Query OK, 2 rows affected (0.30 sec) 
Records: 2 Duplicates: 0 Warnings: 0 

mysql> rollback to savepoint id; 
ERROR 1305 (42000): SAVEPOINT id does not exist 

當保存點之後不運行任何命令,它似乎«工作»:

mysql> savepoint id; 
Query OK, 0 rows affected (0.00 sec) 

mysql> rollback to savepoint id; 
Query OK, 0 rows affected (0.00 sec) 
+0

如果任何讀者需要在DDL語句'ROLLBACK',PostgreSQL支持它。 – halfer

回答