Here's my situation. I have a column with a CHAR(8) format that I need to change to a CHAR(10) format. Preventing a simple ALTER TABLE is that the field is the primary index. There is a lot of data in the table, so doing a CREATE from scratch followed by an UPDATE would be an intense query.
Our initial thought was to do a CREATE TABLE AS to just copy the data over, then drop the original and rename the new one. The problem with that, is that CREATE TABLE AS doesn't preserve properties such as NOT NULL or TITLE. I could do the CREATE TABLE AS and follow up with an ALTER to add those missing properties, but the 'create as' preserve the primary index, so we wouldn't be able to add NOT NULL or a TITLE to that field.
Is CREATE/UPDATE the only solution here? Is there some other way to simply change the format of a primary index that I'm missing? Any help would be appreciated.