On Sun, 2004-10-03 at 08:58, David Garamond wrote:
> Am I correct to assume that SERIAL does not guarantee that a sequence
> won't skip (e.g. one successful INSERT gets 32 and the next might be 34)?
>
> Sometimes a business requirement is that a serial sequence never skips,
> e.g. when generating invoice/ticket/formal letter numbers. Would an
> INSERT INTO t (id, ...) VALUES (SELECT MAX(col)+1 FROM t, ...) suffice,
> or must I install a trigger too to do additional checking?
You will have to lock the whole table and your parallel performance will
be poor.