This is what I've done:
-- 1 - Creating the Sequence:
CREATE SEQUENCE users_code_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 9223372036854775807
START 1000;
CACHE 1;
-- 2 - Setting the DEFAULT
ALTER TABLE public.users ALTER COLUMN code SET DEFAULT NEXTVAL('users_code_seq');
-- 3 - Setting the column as NOT NULL;
ALTER TABLE public.users ALTER COLUMN code SET NOT NULL;
-- 4 - Setting the trigger
CREATE TRIGGER public.update_code_column
BEFORE UPDATE OR INSERT
ON public.users
FOR EACH ROW
EXECUTE PROCEDURE public.users_code_seq;
-- 5 - Creating a CONSTRAINT UNIQUE
ALTER TABLE public.users
ADD CONSTRAINT uc_users_code UNIQUE("code");
Is that right?
Am I missing something?
Cheers
Lucas