I have been looking into this a little bit. The following RDBMS have some sort of IDENTITY column concept. This is NOT the same as a primary key. While primary keys (or any unique keys) are allowed to span several columns, a table must NOT have more than one IDENTITY column. This concept has been formally standardised in SQL:2003: http://en.wikipedia.org/wiki/SQL:2003
And it's available in almost all of jOOQ's supported RDBMS: - DB2's IDENTITY clause - Derby's IDENTITY clause - H2's AUTO_INCREMENT or IDENTITY clauses - HSQLDB's IDENTITY clause - MySQL's AUTO_INCREMENT clause or SERIAL column type - Oracle's sequences and triggers (not sure if this can be used) - Postgres' SERIAL column type (and sequences) - SQLite's AUTOINCREMENT clause (not sure if this can be used) - SQL Server's IDENTITY clause - Sybase's IDENTITY clause In general, it can be said that MySQL's AUTO_INCREMENT concept is NOT the standard, but I can imagine that the standard can be mapped to MySQL's IDENTITY variant. These feature additions will be on the roadmap and hopefully ready for 1.5.9: Source code generation for IDENTITY columns (similar to 1.5.9's generation of unique and primary keys): https://sourceforge.net/apps/trac/jooq/ticket/495 Factory enhancement, to fetch IDENTITY values: https://sourceforge.net/apps/trac/jooq/ticket/416 Automatic refresh of IDENTITY values in UpdatableRecord: https://sourceforge.net/apps/trac/jooq/ticket/496
