- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/lib/db/mysqldbconnection.php
- Класс: BitrixMainDBMysqlDbConnection
- Вызов: MysqlDbConnection::getIndexName
public function getIndexName($tableName, array $arColumns, $strict = false)
{
if (!is_array($arColumns) || count($arColumns) <= 0)
return null;
$rs = $this->query("SHOW INDEX FROM `".$this->getSqlHelper()->forSql($tableName)."`");
if (!$rs)
return null;
$arIndexes = array();
while ($ar = $rs->fetch())
$arIndexes[$ar["Key_name"]][$ar["Seq_in_index"] - 1] = $ar["Column_name"];
$strColumns = implode(",", $arColumns);
foreach ($arIndexes as $Key_name => $arKeyColumns)
{
ksort($arKeyColumns);
$strKeyColumns = implode(",", $arKeyColumns);
if ($strict)
{
if ($strKeyColumns === $strColumns)
return $Key_name;
}
else
{
if (substr($strKeyColumns, 0, strlen($strColumns)) === $strColumns)
return $Key_name;
}
}
return null;
}