Ao criar um índice secundário em uma tabela com tempo de vida (TTL) personalizado, o Tablestore exige configurações específicas. Para resolver esse erro, desative a expiração de dados ou proíba atualizações de linha.
Mensagem de erro
ErrorCode: OTSParameterInvalid, ErrorMessage: Don't support allow update operation on table with index and ttl
Causa
Uma tabela de dados com índice secundário deve atender a uma das seguintes condições:
TTL igual a -1: os dados nunca expiram.
TTL com valor personalizado e
TableOptions.AllowUpdatedefinido comofalse.
Esse erro ocorre quando o TTL não é -1 e TableOptions.AllowUpdate não está definido como false.
Solução
Escolha uma das opções abaixo conforme sua necessidade.
Opção 1: Definir TTL como -1 (desativar expiração de dados)
Use esta opção caso seus dados não precisem expirar.
Console do Tablestore
Faça login no console do Tablestore e abra a tabela de dados desejada.
Na aba Basic Information, clique em Modify Attributes.
Defina Time to Live como -1 e clique em OK.
SDK do Tablestore
Chame a operação UpdateTable e defina TableOptions.TimeToLive como -1.
Opção 2: Proibir atualizações de linha (manter TTL personalizado)
Use esta opção se a expiração de dados for necessária, mas for possível desabilitar atualizações nas linhas.
Após proibir atualizações, a operação UpdateRow não poderá mais modificar dados nesta tabela.
Console do Tablestore
Faça login no console do Tablestore e abra a tabela de dados desejada.
Na aba Basic Information, clique em Modify Attributes.
Defina Allow Updates como No, marque a caixa de confirmação de risco e clique em OK.
SDK do Tablestore
Chame a operação UpdateTable e defina TableOptions.AllowUpdate como false.