Error: Unique indexes can't be specified for multiversioned tables
When creating a replica with a version 9.3.1 SP2 geodatabase, the following error is returned:
"Unique indexes can't be specified for multiversioned tables".
This error happens when using an ArcSDE 9.3.1 SP2 geodatabase where:
- The ArcSDE geodatabase was upgraded from an earlier release using the sdesetup -o upgrade command.
- The data being used was versioned and contained a globalid column prior to upgrade.
If all of these conditions are met, the above error is raised.
In addition, the error is also raised when performing any of the following actions with this data:
- Copy and paste in ArcCatalog and then register as versioned
- Unregister as versioned and then re-register as versioned
The upgrade to version 9.3.1 SP2 creates a unique index on the globalid and objectid columns. If this data is registered as versioned (manually or as a result of create replica), it produces the error.
Solution or Workaround
Drop the unique index created on the globalid and objectid columns from the data.
The following utility will detect if these indexes exist and replace them with non-unique indexes: Chk_GlobalID_Indx_Utility.zip.
See the readme in the ZIP file for more information.
The indexes can also be removed manually from a feature class or table using the steps below:
- Connect to the ArcSDE geodatabase in ArcCatalog.
- Right-click and select 'Properties' for the feature class or table.
- Click the 'Indexes' tab.
- Select the index that lists the fields as:
It may be named something similar to the following: UUID_OID_46, I9Globaldid2.
If the feature class or table is not versioned, the Unique check box will be checked.
- Click the 'Delete' button to delete the index and then click OK.