As seen in the previous section, pgModeler is capable of creating a sequence object from a serial column, but sometimes you'll need to do the inverse operation: create a serial column from an integer one. The tool also implements this feature by selecting the integer
column, right-clicking it, and then
selecting Convert to serial
. The result of this operation can be seen in the image below.
This feature is quite handy when you have imported a database using the reverse engineering tool and need to change the auto-increment columns of all tables. The only limitation of this feature is that the default value of the columns must be a call to the function nextval('my_sequence'::regclass)
or the column has a sequence object assigned to it. If that is not the case, pgModeler will raise an error and refuse to do the conversion. In the case of converting to serial a column that has a sequence attached to it, this latter object will not be automatically removed. It is up to the user to remove the object.
This conversion will create a different serial type according to the integer type assigned to the column. If the column is an integer
or int4
, the serial
type will be assigned. For smallint
or int2
, the smallserial
is used. Lastly, for bigint
or int8
, the replacement data type will be bigserial
.