ADOdb

Database Abstraction Layer for PHP

User Tools

Site Tools


v6:dictionary:metaindexes

V6 Provider: \ADOdb\database\drivers\[driver]\ADOMetaFunctions

metaIndexes

See Also

metaPrimaryKeys()

Syntax
  mixed metaIndexes(
      string $tableName,
      optional bool $includePrimary=false,
      optional string $owner=false,
      )

Description

The function metaIndexes() returns a list of indexes associated with a specific table. If there are no indexes defined for the requested table, the method returns false.

Version 6 of ADOdb provides 2 different responses based on the setting suppressExtendedMetaIndexes in the connectionDefinitions class. If the value is set to true, then all drivers return the same array of data. There are no database-specific entries. The array of data is as followed:


[index_name] => Array
(
    [unique] => 0
    [primary] => 0 
    [columns] => Array
    (
        [0] => Column 1
        [1] => Column 2
        [2] => etc........
     )
)

If the value is set to false, then the response is as follows:

[index_name] => Array
(
    [unique] => 0
    [primary] => 0 
    [columns] => Array
    (
        [0] => Column 1
        [1] => Column 2
        [2] => etc........
     )
     [index-attributes]
     (
         [key] => value
         [key] => etc.....
      )
      [column-attributes]
      (
          [col1] => ( 
              [key] => value
              [key] => etc....
              )
          [col2] => etc...    
      )   
)

The index attributes are the database specific attributes associated with the index as a whole. The column attributes are the index attributes of specific columns. Here is an example item from the MySQL employees table

Array
(
    [PRIMARY] => Array
        (
            [unique] => 1
            [primary] => 0
            [columns] => Array
                (
                    [0] => emp_no
                )
 
            [index-attributes] => Array
                (
                    [table] => employees
                    [non_unique] => 0
                    [key_name] => PRIMARY
                    [cardinality] => 285156
                    [packed] => 
                    [index_type] => BTREE
                    [index_comment] => 
                    [visible] => YES
                    [expression] => 
                )
 
            [column-attributes] => Array
                (
                    [emp_no] => Array
                        (
                            [seq_in_index] => 1
                            [column_name] => emp_no
                            [collation] => A
                            [sub_part] => 
                            [null] => 
                        )
 
                )
 
        )
 
)

The casing of metaIndexes is returned in the native mode for the database, you should not assume the casing for the returned data.

Optional Parameters

$includePrimary

If set, the index associated with the primary key is also returned

$owner

If specified, only returns indexes associated with a table owned by that name. Support for this function is limited, see the Feature Comparison Matrix.

Usage

/*
 * Database connection to DB2 database sample assumed
 */
$mi = $db->metaIndexes('ACT');
print_r($mi);
/*
 * Returns
Array
(
    [PK_ACT] => Array
        (
            [unique] => 0
            [columns] => Array
                (
                    [0] => ACTNO
                )
 
        )
 
    [XACT2] => Array
        (
            [unique] => 0
            [columns] => Array
                (
                    [0] => ACTNO
                    [1] => ACTKWD
                )
 
        )
 
)
*/
v6/dictionary/metaindexes.txt · Last modified: by 127.0.0.1