我想在迁移的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属性来启用查询缓冲。
任何想法如何解决这个问题?
答案 0 :(得分:0)
我很蠢......
IF NOT EXISTS
$this->executeSQL("CREATE TABLE `foo` IF NOT EXISTS");