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

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

Extract foreign key constraints by extracting the contraints from SHOW CREATE TABLE result.
protected findForeignConstraints ( $schemaName, $tableName ) : array
Результат array foreign relationship table name and keys.
    protected function findForeignConstraints($schemaName, $tableName)
    {
        $sql = $this->getShowCreateTable($schemaName, $tableName);
        $matches = array();
        $regexp = '/FOREIGN KEY\\s+\\(([^\\)]+)\\)\\s+REFERENCES\\s+`?([^`]+)`?\\s\\(([^\\)]+)\\)/mi';
        preg_match_all($regexp, $sql, $matches, PREG_SET_ORDER);
        $foreign = array();
        foreach ($matches as $match) {
            $fields = array_map('trim', explode(',', str_replace('`', '', $match[1])));
            $fk_fields = array_map('trim', explode(',', str_replace('`', '', $match[3])));
            $keys = array();
            foreach ($fields as $k => $v) {
                $keys[$v] = $fk_fields[$k];
            }
            $foreign[] = array('keys' => $keys, 'table' => trim($match[2]));
        }
        return $foreign;
    }