Prado\Data\Common\Pgsql\TPgsqlMetaData::getPrimaryKeys PHP Method

getPrimaryKeys() protected method

Gets the primary key field names
protected getPrimaryKeys ( $tableName, $schemaName, $columnIndex ) : array
return array primary key field names.
    protected function getPrimaryKeys($tableName, $schemaName, $columnIndex)
    {
        $index = join(', ', explode(' ', $columnIndex));
        $sql = <<<EOD
\t\tSELECT attnum, attname FROM pg_catalog.pg_attribute WHERE
\t\tattrelid=(
\t\t\tSELECT oid FROM pg_catalog.pg_class WHERE relname=:table AND relnamespace=(
\t\t\t\tSELECT oid FROM pg_catalog.pg_namespace WHERE nspname=:schema
\t\t\t)
\t\t)
\t\t\t\tAND attnum IN ({$index})
EOD;
        $command = $this->getDbConnection()->createCommand($sql);
        $command->bindValue(':table', $tableName);
        $command->bindValue(':schema', $schemaName);
        //		$command->bindValue(':columnIndex', join(', ', explode(' ', $columnIndex)));
        $primary = array();
        foreach ($command->query() as $row) {
            $primary[] = $row['attname'];
        }
        return $primary;
    }