在使用Symfony sfPropelMigrationsLight插件运行sql之前检查表是否存在

时间:2011-06-01 21:36:50

标签: mysql symfony1 migration

我想在迁移的up()方法中运行create SQL语句之前检查是否存在表。

我可以运行类似的东西:

$count = $this->executeSQL("SELECT count(*) FROM information_schema.TABLES where TABLE_NAME = 'table_name';");

if($count == 0)
{
   $this->executeSQL("Create SQL ...");
}

问题是这会返回以下错误:

  

SQLSTATE [HY000]:常规错误:2014在其他未缓冲的查询处于活动状态时无法执行查询。考虑使用PDOStatement :: fetchAll()。或者,如果您的代码只是针对mysql运行,则可以通过设置PDO :: MYSQL_ATTR_USE_BUFFERED_QUERY属性来启用查询缓冲。

任何想法如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我很蠢......

IF NOT EXISTS

$this->executeSQL("CREATE TABLE `foo` IF NOT EXISTS");