A tabela já tem alguns milhares de linhas e quero converter a chave primária de Integer para BigInteger. Como alterar a sequência para biginteger?
--Create new temp sequence (sequence-name1) for bigint
CREATE SEQUENCE public.case_audit_case_audit_uid_seq1
INCREMENT 1
START 5542
MINVALUE 1
MAXVALUE 9223372036854775807
CACHE 1;
ALTER SEQUENCE public.case_audit_case_audit_uid_seq1 OWNER TO postgres;
--Alter column to bigint
ALTER TABLE public.case_audit ALTER COLUMN case_audit_uid TYPE bigint;
--Alter pk column with temp Sequence
ALTER TABLE public.case_audit ALTER COLUMN case_audit_uid SET DEFAULT nextval('indsolv.case_audit_case_audit_uid_seq1'::regclass);
--Drop original sequence
DROP SEQUENCE public.case_audit_case_audit_uid_seq;
--Create new sequence for bigint with original sequence name
CREATE SEQUENCE public.case_audit_case_audit_uid_seq
INCREMENT 1
START 5542
MINVALUE 1
MAXVALUE 9223372036854775807
CACHE 1;
ALTER SEQUENCE public.case_audit_case_audit_uid_seq OWNER TO postgres;
---Set original sequence
ALTER TABLE public.case_audit ALTER COLUMN case_audit_uid SET DEFAULT nextval('public.case_audit_case_audit_uid_seq'::regclass);
---Drop temp sequence
DROP SEQUENCE public.case_audit_case_audit_uid_seq1;
Existe alguma solução simples comparada a esta?
O PgAdmin4 não tem opção de modificar graficamente, mas de acordo com o Documento do PostgreSQL , podemos alterar o tipo de dados da sequência para smallint, integer e bigint
Altere a coluna da tabela e o tipo de dados da sequência e defina o valor máximo para a sequência