1

试图弄清楚交易在 phinx 包中是如何工作的。这是我的迁移代码,它不起作用。我用过mysql,一切正常phinx.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();
}
4

1 回答 1

4

事务仅适用于 mysql 的数据 (DML) 更改。您不能“处理”数据定义更改 (DDL)。

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

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

是否可以回滚主要 SQL 数据库中的 CREATE TABLE 和 ALTER TABLE 语句?

于 2016-10-21T15:54:18.133 回答