I have made a table, containing an integer field, this field being used in the primary index of that table. Now I would like to replace this integer field by a character one. Therefore I need to remove all indexes of that table, including the primary one. Therefore I'm using the data dictionary, but I get following error message:

You cannot delete the primary index of a table.

How can I proceed?


  • Please specify the exact commands that you are running? Mar 30, 2021 at 7:42
  • @Vérace: thanks for the quick reply. I'm working with the interactive Data Dictionary tool, where I press the "Delete Index" button (I don't know the exact command behind this button). When I press the "Help" button the message, this is the callstack I see: --> adedict/_delete.p at line 1874 (adedict/_delete.r).
    – Dominique
    Mar 30, 2021 at 7:54
  • Please be specific about what tool exactly you are using... what's the matter with psql? I'm guessing, but I'd be willing to bet that the field you're trying to delete is a FOREIGN KEY in another table - do a search for this! See here. Mar 30, 2021 at 8:22
  • @Vérace: you are referring to PostGreSQL, while I'm working with Progress (ABL) technology.
    – Dominique
    Mar 30, 2021 at 8:23
  • Oooops... sorry about that - we don't have many Progress ABL devs here :-) Mar 30, 2021 at 8:34

1 Answer 1


You need to first designate a different index as "primary" before you can drop the existing index. The data admin tool has a menu option for doing so:

Database Schema Admin DataServer Utilities PRO/SQL Tools
│Name: CustNum                    PRIMARY UNIQUE     ACTIVE
│      ┌──────────────────────────────────┐
│Area: │  Cust_Index                      │
│      └──────────────────────────────────┘
│ Comments                    ││Seq Field Name            Type        Asc  Abbr│
│ CountryPost                 ││─── ───────────────────── ─────────── ──── ────│
│ CustNum                     ││  1 CustNum               integer     Asc  No  │
│ Name                        ││                                               │
│ SalesRep                    ││                                               │

│                             ││                                               │
│                             ││                                               │
│     Next  Prev  First  Last  Rename  Add  Delete  ChangePrimary  Uniqueness
└──── MakeInactive  Browse  SwitchTable  GoField  ROWID  Undo  ChangeLocal  Exit
 Index Editor                                                  Data Dictionary
Database: s2k (PROGRESS)               Table: Customer

Change the Primary Index of this table.

(Your screen may look different depending on what version of Progress you are running and whether or not it is Windows. But the functionality is the same...)

If you do not have another index you will first need to create one.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.