> model | character varying(50) | default NULL::character varying > > > Required Column > > Model integer > > > ========= > ALTER TABLE device ALTER COLUMN model TYPE integer USING (model::integer); > > > getting below error > > ERROR: default for column "model" cannot be cast automatically to type integer
You'll need to drop the column default and re-add it after converting the column.
You are correct, but in this specific case I don't see much point of having a DEFAULT NULL anyway (NULL is already the default, when there is no DEFAULT [confusing? xD ]). I'd just drop the DEFAULT and then change the type:
ALTER TABLE device ALTER model DROP DEFAULT, ALTER model TYPE integer USING (model::integer);