diff --git a/framework/db/cubrid/QueryBuilder.php b/framework/db/cubrid/QueryBuilder.php index bbd688c883..7ea7dc3cff 100644 --- a/framework/db/cubrid/QueryBuilder.php +++ b/framework/db/cubrid/QueryBuilder.php @@ -119,6 +119,23 @@ class QueryBuilder extends \yii\db\QueryBuilder return 'SELECT CASE WHEN EXISTS(' . $rawSql . ') THEN 1 ELSE 0 END'; } + /** + * @inheritDoc + * @see http://www.cubrid.org/manual/93/en/sql/schema/table.html#drop-index-clause + */ + public function dropIndex($name, $table) + { + /** @var Schema $schema */ + $schema = $this->db->getSchema(); + foreach ($schema->getTableUniques($table) as $unique) { + if ($unique->name === $name) { + return $this->dropUnique($name, $table); + } + } + + return 'DROP INDEX ' . $this->db->quoteTableName($name) . ' ON ' . $this->db->quoteTableName($table); + } + /** * @inheritDoc * @throws NotSupportedException this is not supported by CUBRID. diff --git a/framework/db/mysql/QueryBuilder.php b/framework/db/mysql/QueryBuilder.php index 41b024ba44..8452383c31 100644 --- a/framework/db/mysql/QueryBuilder.php +++ b/framework/db/mysql/QueryBuilder.php @@ -120,6 +120,14 @@ class QueryBuilder extends \yii\db\QueryBuilder return 'ALTER TABLE ' . $this->db->quoteTableName($table) . ' DROP PRIMARY KEY'; } + /** + * @inheritDoc + */ + public function dropUnique($name, $table) + { + return $this->dropIndex($name, $table); + } + /** * @inheritDoc * @throws NotSupportedException this is not supported by MySQL.