4D v16.3

CREATE INDEX

Página Inicial

 
4D v16.3
CREATE INDEX

CREATE INDEX 


 

CREATE INDEX ( tabela ; arrayCampos ; tipoIndice ; nomeIndice {; *} ) 
Parâmetro Tipo   Descrição
tabela  Tabela in Tabela para qual criar um índice
arrayCampos  Array ponteiro in Ponteiros aos campos a serem indexados
tipoIndice  Inteiro longo in Tipo de índice a criar: -1 = Palavra chave, 0 = padrão, 1 = B-Tree padrão, 3 = Cluster B-Tree
nomeIndice  Texto in Nome de Índice a criar
Operador in Se passado = índice assincrônico

O comando CREATE INDEX permite criar:

  • Um índice padrão em um ou mais campos (índice composto) ou
  • Um índice de palavras chaves em um campo.

O índice é criado para a tabela minhaTabela utilizando um ou mais campos determinados pelo  array de ponteiros arrayCampos. Este array contém apenas uma linha se quiser criar um índice simples e dois ou mais quando quiser criar um índice composto (exceto no caso de um índice de palavras chaves). No caso dos índices compostos, a ordem dos campos no array é importante durante a construção do índice.

O parâmetro tipoIndice permite definir o tipo de índice a criar. Pode passar uma das seguintes constantes, que se encontram no tema Tipo de Índice:
Constante Tipo Valor
Cluster BTree Index Inteiro longo 3
Default Index Type Inteiro longo 0
Keywords Index Inteiro longo -1
Standard BTree Index Inteiro longo 1

Nota: um índice B-Tree associado a um campo de tipo texto armazena como máximo os primeiros 1024 caracteres do campo. Portanto nesse contexto, as pesquisas nas cadeias que contenham mais de 1024 caracteres falharão.

Passe em nomeIndice, o nome do índice a criar. É necessário dar nomes aos índices se vários índices de diferentes tipos podem associados a um mesmo campo e se preferir poder apagá-los individualmente com a ajuda do comando DELETE INDEX. Se o índice nomeIndice já existir, o comando não faz nada.

O parâmetro opcional *, quando for passado, permite realizar a indexação em modo assincrônico. Nesse modo, o método original continua sua execução depois da chamada do comando, sem importar se a indexação terminou ou não.

Se o comando CREATE INDEX encontrar registros bloqueados, estes não serão indexados e o comando esperará que sejam desbloqueados.

Se ocorrer um problema durante a execução do comando (campo não indexável, tentativa de criação de um índice de palavras chaves em mais de um campo, etc.),  um erro é gerado. Este erro pode ser interceptado utilizando um método de gestão de erros.

Criação de dois índices padrão nos campos “Sobrenome” e “Telefone” da tabela [Clientes]:

 ARRAY POINTER(arrayPtrCampo;1)
 fieldPtrArr{1}:=->[Clientes]Sobrenome
 CREATE INDEX([Clientes];arrayPtrCampo;Standard BTree Index;"CustLNameIdx")
 fieldPtrArr{1}:=->[Clientes]Telefone
 CREATE INDEX([Clientes];arrayPtrCampo;Standard BTree Index;"CustTelIdx")

Criação de um índice de palavras chaves no campo "Observações da tabela  [Clientes]:

 ARRAY POINTER(arrayPtrCampo;1)
 fieldPtrArr{1}:=->[Clientes]Observações
 CREATE INDEX([Clientes];arrayPtrCampo;Keywords Index;"CustObsIdx")

Criação de um índice composto nos campos “Cidade” e “CódigoPostal” da tabela [Clientes]:

 ARRAY POINTER(arrayPtrCampo;2)
 fieldPtrArr{1}:=->[Clientes]Cidade
 fieldPtrArr{2}:=->[Clientes]CodigoPostal
 CREATE INDEX([Clientes];arrayPtrCampo;Standard BTree Index;"CidadeCEP")



Ver também 

DELETE INDEX
RESUME INDEXES
SET INDEX

 
PROPRIEDADES 

Produto: 4D
Tema: Acesso a Estrutura
Número 966

This command can be run in preemptive processes

 
HISTÓRIA 

Criado por: 4D v11 SQL

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v16)
Manual de linguagem 4D ( 4D v16.1)
Manual de linguagem 4D ( 4D v16.2)
Manual de linguagem 4D ( 4D v16.3)