Kopia tabeli w PostgreSQL

-- tworzymy nową tabelę
CREATE TABLE nowa_tabela (LIKE stara_tabela INCLUDING all);

-- usuwamy domyślną wartość dla kolumny z primary key
ALTER TABLE nowa_tabela ALTER st_id DROP DEFAULT;

-- kopiujemy zawartość starej tabeli do nowej
INSERT INTO nowa_tabela SELECT * FROM stara_tabela;

-- zmiana nazwy kolumny z primary key
ALTER TABLE nowa_tabela RENAME COLUMN st_id TO nt_id;

-- tworzymy generator kolejnych liczb - auto increment
CREATE SEQUENCE nowa_tabela_nt_id_seq;

-- ustawiamy ostatni id w generatorze
SELECT setval('nowa_tabela_nt_id_seq', (SELECT max(st_id) FROM stara_tabela), true);

-- przypisujemy kolumnie z primary key generator
ALTER TABLE nowa_tabela ALTER nt_id SET DEFAULT nextval('nowa_tabela_nt_id_seq');

-- i robimy go właścicielem tego generatora
ALTER SEQUENCE nowa_tabela_nt_id_seq OWNED BY nowa_tabela.nt_id;