Prado\Data\Common\Mysql\TMysqlMetaData::getForeignConstraints PHP Метод

getForeignConstraints() защищенный Метод

Gets foreign relationship constraint keys and table name
protected getForeignConstraints ( $schemaName, $tableName ) : array
Результат array foreign relationship table name and keys.
    protected function getForeignConstraints($schemaName, $tableName)
    {
        $andSchema = $schemaName !== null ? 'AND TABLE_SCHEMA LIKE :schema' : 'AND TABLE_SCHEMA LIKE DATABASE()';
        $sql = <<<EOD
\t\t\tSELECT
\t\t\t\tCONSTRAINT_NAME as con,
\t\t\t\tCOLUMN_NAME as col,
\t\t\t\tREFERENCED_TABLE_SCHEMA as fkschema,
\t\t\t\tREFERENCED_TABLE_NAME as fktable,
\t\t\t\tREFERENCED_COLUMN_NAME as fkcol
\t\t\tFROM
\t\t\t\t`INFORMATION_SCHEMA`.`KEY_COLUMN_USAGE`
\t\t\tWHERE
\t\t\t\tREFERENCED_TABLE_NAME IS NOT NULL
\t\t\t\tAND TABLE_NAME LIKE :table
\t\t\t\t{$andSchema}
EOD;
        $command = $this->getDbConnection()->createCommand($sql);
        $command->bindValue(':table', $tableName);
        if ($schemaName !== null) {
            $command->bindValue(':schema', $schemaName);
        }
        $fkeys = array();
        foreach ($command->query() as $col) {
            $fkeys[$col['con']]['keys'][$col['col']] = $col['fkcol'];
            $fkeys[$col['con']]['table'] = $col['fktable'];
        }
        return count($fkeys) > 0 ? array_values($fkeys) : $fkeys;
    }