Phinx交易无效

时间:2016-10-19 23:23:59

标签: php mysql transactions phinx

试图找出交易在phinx包中的运作方式。这是我的迁移代码,但它不起作用。我使用mysqlphinx.yml一切正常。因此,当表acme失败并且在fail表中找不到记录时,将创建表phinxlog。所以,当我运行phinx migrate我错误SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'acme' already exists时。那么,我该如何使用交易?我没有找到任何关于它的文档,请帮助我))

public function up()
{
    $this->getAdapter()->beginTransaction();
    $this->table('acme')->addColumn('name', 'string')->create();
    $this->table('fail')->addColumn('lal', 'failme')->create();
    $this->getAdapter()->commitTransaction();
}

1 个答案:

答案 0 :(得分:3)

事务仅适用于使用mysql进行数据(DML)更改。你不能交易'数据定义更改(DDL)。

http://dev.mysql.com/doc/refman/5.7/en/cannot-roll-back.html

但是其他数据库可以(在某些条件下)。

Is it possible to roll back CREATE TABLE and ALTER TABLE statements in major SQL databases?