事务Laravel架构创建

时间:2016-04-01 21:25:48

标签: database laravel transactions

当我使用Schema :: create方法时,我正在尝试创建一个事务,但它不起作用。在我的应用程序中,我必须在不同的数据库上创建动态表,如果出现错误,我必须回滚。 Laravel启动异常,但回滚不起作用。我正在使用laravel 5.1

1 个答案:

答案 0 :(得分:0)

我假设你正在使用MySQL。 DDL语句(create table,alter table等)无法在事务中回滚。

来自docs

  

某些语句无法回滚。通常,这些语句包括数据定义语言(DDL)语句,例如创建或删除数据库的语句,创建,删除或更改表或存储例程的语句。

     

您应该将交易设计为不包含此类声明。如果您在无法回滚的事务的早期发出语句,然后另一个语句失败,则在这种情况下,通过发出ROLLBACK语句无法回滚事务的完整效果。