Database modules provide an abstraction layer for different interfaces
used by database management systems for autoincrement columns. The value
can be obtained from the DBMS or some other source before or after the statement
is executed. Or some code can be inserted into the query to direct the DBMS
to use the next value of a sequence.