This is how I do it.
- Delete if you already have one backup
DROP TABLE IF EXISTS TABLE_NAME_BKP CASCADE;
- Create two backups, one for work and delete at the end, and one more - a real backup
SELECT * INTO TABLE_NAME_BKP FROM TABLE_NAME; SELECT * INTO TABLE_NAME_4_WORK FROM TABLE_NAME;
--We can also execute the ALTER below, but it contains the primary key constraint name, therefore, you cannot create a new table with the same constraint names
ALTER TABLE TABLE_NAME RENAME TO TABLE_NAME_4_WORK;
- Make sure you copy
SELECT COUNT(*) FROM TABLE_NAME; SELECT COUNT(*) FROM TABLE_NAME_4_WORK;
- create a new table schema
DROP TABLE IF EXISTS TABLE_NAME CASCADE; CREATE TABLE TABLE_NAME ( ID varchar(36) NOT NULL, OLD_COLUMN varchar(36), NEW COLUMN_1 varchar(36) ) compound sortkey (ID, OLD_COLUMN, NEW COLUMN_1); ALTER TABLE TABLE_NAME ADD CONSTRAINT PK__TAB_NAME__ID PRIMARY KEY (id);
- copy data from old to new
INSERT INTO TABLE_NAME ( id, OLD_COLUMN) (SELECT id, OLD_COLUMN FROM TABLE_NAME_4_WORK)
- Remove the desktop TABLE_NAME_4_WORK.
DROP TABLE TABLE_NAME_4_WORK;
- COMPARE BKP AND NEW TABLES, AND SAVE BKP TABLE FOR SOMETIMES.
SELECT COUNT(*) FROM TABLE_NAME_BKP; SELECT COUNT(*) FROM TABLE_NAME;