versión 11
CREATE INDEX (laTabla; arrayCampos; tipoIndice; nombreIndice{; *})
Parámetro | Tipo | Descripción | |
laTabla | Tabla | Tabla para la cual crear un índice | |
arrayCampos | Array puntero | Puntero(s) a el/los campo(s) a indexar | |
tipoIndice | Entero | Tipo de índice a crear: -1 = Palabras claves, 0 = por | |
defecto, 1 = B-Tree estándar, 3 = B-Tree cluster | |||
nombreIndice | Texto | Nombre del índice a crear | |
* | * | Si pasa = indexación asincrónica |
Descripción
El comando CREATE INDEX permite crear:
Un índice estándar en uno o más campos (índice compuesto) o
Un índice de palabras claves en un campo.
El índice se crea para la tabla laTabla utilizando uno o más campos designados por el array de punteros arrayCampos. Este array contiene una sola línea si quiere crear un índice simple y dos o más cuando quiere crear un índice compuesto (excepto en el caso de un índice de palabras claves). En el caso de los índices compuestos, el orden de los campos en el array es importante durante la construcción del índice.
El parámetro tipoIndice permite definir el tipo de índice a crear. Puede pasar una de las siguientes constantes, que se encuentran en el tema"Index Type":
Keywords Index (-1): Índice de palabras claves. Recuerde que las palabras claves no pueden ser compuestas: debe pasa sólo un campo en el array arrayCampos.
Default Index Type (0): En este caso, 4D define el tipo de índice (excepto índices de palabras claves) óptimo de acuerdo a los contenidos del campo.
Standard BTree Index (1): Índice de tipo B-Tree clásico. Este tipo de índice multipropósito se utiliza en las versiones anteriores de 4D.
Cluster BTree Index (3): Índice de tipo B-Tree utilizando clusters. Este tipo de índice es óptimo cuando el índice contiene pocas claves, es decir cuando los mismos valores se presentan con frecuencia en los datos.
En el parámetro nomIndice, pase el nombre del índice a crear. Este nombre es obligatorio, si pasa una cadena vacía, se genera un error. Si el índice nomIndice ya existe, el comando no hace nada.
El parámetro opcional *, cuando se pasa, permite efectuar la indexación en modo asincrónico. En este modo, el método original continua su ejecución después de la llamada del comando, sin importar si la indexación ha terminado o no.
Si el comando CREATE INDEX encuentra registros bloqueados, estos no serán indexados y el comando esperará a que sean desbloqueados.
Si ocurre un problema durante la ejecución del comando (campo no indexable, intento de creación de un índice de palabras claves de más de un campo, etc.), se genera un error. Este error puede interceptarse utilizando un método de gestión de errores.
Ejemplos
1. Creación de dos índices estándar en los campos "Apellido" y "Teléfono" de la tabla [Clientes]:
ARRAY POINTER(arrayPtrCampo;1) fieldPtrArr{1}:=->[Clientes]Apellido CREATE INDEX([Clientes];arrayPtrCampo;Standard BTree Index;"CustLNameIdx") fieldPtrArr{1}:=->[Clientes]Telefono CREATE INDEX([Clientes];arrayPtrCampo;Standard BTree Index;"CustTelIdx")
2. Creación de un índice de palabras claves en el campo "Observaciones" de la tabla [Clientes]:
ARRAY POINTER(arrayPtrCampo;1) fieldPtrArr{1}:=->[Clientes]Observaciones CREATE INDEX([Clientes];arrayPtrCampo;Keywords Index;"CustObsIdx")
3. Creación de un índice compuesto en los campos "Ciudad" y "CodigoPostal" de la tabla [Clientes]:
ARRAY POINTER(arrayPtrCampo;2) fieldPtrArr{1}:=->[Clientes]Ciudad fieldPtrArr{2}:=->[Clientes]CodigoPostal CREATE INDEX([Clientes];arrayPtrCampo;Standard BTree Index;"CityZip")
Ver también