セカンダリインデックスを作成するときに「Don't support allow update operation on table with index and ttl」エラーメッセージが表示された場合は、有効期限 (TTL) パラメーターが -1 以外の値に設定されている場合、またはデータテーブル内のデータが期限切れにならない場合、データテーブルの更新が禁止されていることを確認してください。
問題の説明
セカンダリインデックスを作成すると、次のエラーメッセージが表示されます。
ErrorCode: OTSParameterInvalid, ErrorMessage: Don't support allow update operation on table with index and ttl
原因
TTL パラメーターが -1 以外の値に設定されていますが、TableOptions.AllowUpdate パラメーターが false に設定されていません。
データテーブルのセカンダリインデックスを作成する場合、データテーブルは次のいずれかの条件を満たしている必要があります。
データテーブルの TTL パラメーターが -1 に設定されています。これは、データテーブル内のデータが期限切れにならないことを意味します。
データテーブルの TTL パラメーターが -1 以外の値に設定されており、TableOptions.AllowUpdate パラメーターが false に設定されています。
解決策
ビジネス要件に基づいて解決策を選択してください。
データテーブル内のデータの有効期限が切れないようにするには、Tablestore コンソールまたは Tablestore SDK を使用して、データテーブルの TTL パラメーターを -1 に設定します。
Tablestore コンソールの使用
Tablestoreコンソールにログオンし、データテーブルの基本情報タブに移動します。属性の変更をクリックします。表示されるダイアログボックスで、有効期限を-1に設定し、OKをクリックします。
Tablestore SDK の使用
UpdateTable オペレーションを呼び出して、TableOptions.TimeToLive パラメーターを -1 に設定します。
TTL パラメーターを -1 以外の値に設定する場合は、Tablestore コンソールまたは Tablestore SDK を使用して、データテーブルの更新を禁止できます。
重要データテーブルの更新を禁止した後、UpdateRow オペレーションを呼び出してデータテーブル内のデータを更新することはできません。
Tablestore コンソールの使用
Tablestoreコンソールにログインし、データテーブルの基本情報タブに移動します。属性の変更をクリックします。表示されるダイアログボックスで、更新を許可をいいえに設定し、リスクメッセージの横にあるチェックボックスをオンにして、OKをクリックします。
Tablestore SDK の使用
UpdateTable オペレーションを呼び出して、TableOptions.AllowUpdate パラメーターを false に設定します。