• Модуль: 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;
}