Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
CREATE INDEX
|
CREATE INDEX ( tabela ; arrayCampos ; tipoIndice ; nomeIndice {; *} ) | ||||||||
Parâmetro | Tipo | Descrição | ||||||
tabela | Tabela |
![]() |
Tabela para qual criar um índice | |||||
arrayCampos | Array ponteiro |
![]() |
Ponteiros aos campos a serem indexados | |||||
tipoIndice | Inteiro longo |
![]() |
Tipo de índice a criar: -1 = Palavra chave, 0 = padrão, 1 = B-Tree padrão, 3 = Cluster B-Tree | |||||
nomeIndice | Texto |
![]() |
Nome de Índice a criar | |||||
* | Operador |
![]() |
Se passado = índice assincrônico | |||||
O comando CREATE INDEX permite criar:
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.
Dado que este comando modifica a estrutura do banco de dados, não pode ser utilizado no contexto de uma aplicação empacotada de apenas leitura (arquivo .4dc instalado na pasta Arquivos de programa ou arquivo .4dz).
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")
Produto: 4D
Tema: Acesso a Estrutura
Número
966
Criado por: 4D v11 SQL
Manual de linguagem 4D ( 4D v20 R7)