Creando una base de datos he hecho esto:
create table departamentos
(idDepartamento serial,
codigo integer,
nombre varchar(50),
primary key (idDepartamento));
create table municipios
(idMunicipio serial,
codigo integer,
nombre varchar(50),
idDepartamento integer references departamentos(idDepartamento),
primary key (idMunicipio));
Pero me equivoque al dejar como integer el campo codigo de cada una de las tablas, para cambiar este tipo de dato podemos hacerlo así:
alter table departamentos alter column codigo type varchar(3);
alter table municipios alter column codigo type varchar(3);