- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/internals/database/helper/common.php
- Класс: BitrixTasksInternalsDataBaseHelperCommon
- Вызов: Common::createIndex
static function createIndex($tableName, $ixNamePostfix, $columns = array(), $unique = false)
{
if(!mb_strlen($tableName) || !mb_strlen($ixNamePostfix) || !is_array($columns) || empty($columns))
return false;
$dbConnection = MainHttpApplication::getConnection();
$dbHelper = $dbConnection->getSqlHelper();
$tableName = $dbHelper->forSql($tableName);
$ixNamePostfix = $dbHelper->forSql($ixNamePostfix);
$columns = static::escapeArray($columns);
$ixName = static::getIndexName($tableName, $ixNamePostfix, $columns);
if(mb_strlen($ixName) > 30)
return false;
if(!static::checkIndexNameExists($ixName, $tableName))
{
$dbConnection->query("CREATE ".($unique ? "UNIQUE" : "")." INDEX ".$ixName." ON ".$tableName." (".implode(', ', $columns).")");
return true;
}
return false;
}