Search code examples
cratedb

Alter Table Primary key - Crate DB


I want to alter a table in my Crate DB to change the primary key constraint to add a column to the existing one. If I need to drop the constraint and create a new one what would be the SQL syntax for the same. I have been trying the conventional SQL syntax and it does not seem to work:

alter table my_data_table drop primary key; 

the above command gives an error:

SQLActionException[SQLParseException: line 1:34: no viable alternative at input 'alter table my_data_table drop']

I checked the Alter table SQL reference and can only find ways to add columns but nothing about altering the constraints.So if you are aware of how to do this, please let me know.
cheers!


Solution

  • there's no way to alter the primary key once a table has been created. You need to create a new table that has the schema you'd like to have and then either move the data over with COPY TO and COPY FROM or with insert into to_table (i) (select ... from t). With CrateDB > 2.0 it's also possible to rename tables, so you can still use the original table name.