这是一个非常简单的SQL命令:
start transaction;
insert into new_data(textvalue) values ("data1");
insert into new_data(brak) values ("data2");
commit;
字符串
所以表new_data只有一个字段叫做“textvalue”.“brak”不存在.我想因为我在真实的开始声明“start transaction”所以当第二次插入发生错误时,第一次插入将回滚.然而,我检查了数据库,第一次插入仍然成功,表有一个新的roll“data1”.
有人能解释一下为什么会发生这种情况吗?
谢谢
1条答案
按热度按时间e4eetjau1#
Mysql不会为你回滚,如果你看到错误,你需要运行回滚。如果你在workbranch中运行脚本,它会一个接一个地运行你的sql,所以最终它是提交的。
这个例子向你展示了一个存储过程如何为你回滚.
字符串