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