array createIndexSql( string $indexName, string $tableName, mixed $indexColumns, optional mixed $indexOptions=false )
The method createIndexSql()
creates the SQL statement necessary to create an index, given by $indexName
on an existing table, given by $tableName
, with the attributes specified in the mixed variable $indexColumns
. The index must not already exist on the specified table (unless the REPLACE $indexOptions
attribute is provided). In some databases, the index name must be unique to the entire database.
In order to actually create the index, the returned array must be passed to the executeSqlArray() method.
An identifier for the index. The identifier must conform to any attributes designated by the DBMS, such as length and character set.
The parameter must indicate an existing table in the database.
The parameter contains the fields to be used in the index, in the order in which they are to appear. The parameter may be passed as either a string:
$fields = 'COLUMN_1,COLUMN_2,COLUMN_3';
or as a numeric array:
$fields = array('COLUMN_1','COLUMN_2','COLUMN_3');
In databases that support partial column indexing, the columns can be passed as COLUMN_1(20)
.
An array of possible options to creating the index. Some options are database specific. To create a unique index, pass the array ('UNIQUE')
;
$dict = NewDataDictionary($db); $sqlarray = $dict->createIndexSql('SALESIDX','ACT', 'ACTMAXSALE,ACTNO'); print_r($sqlarray); /* * prints * Array ( [0] => CREATE INDEX SALESIDX ON ACT (ACTMAXSALE, ACTNO) ) */