L'incremento è decisamente negativo se si dispone di più di un processo che scrivono sulla stessa tabella:è probabile che si verifichino collisioni.
Dato che stiamo parlando di MySQL, la cosa più semplice da usare sarebbe identity
. Nella tua mappatura Hibernate:
<generator class="identity"/>
Nel tuo script MySQL:
CREATE TABLE IF NOT EXISTS `my_table` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`data1` int(11) NOT NULL,
`data2` int(11) NOT NULL,
`timestamp` datetime default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
Per modificare una tabella esistente:
ALTER TABLE `my_table`
CHANGE COLUMN `id` `id` int(11) NOT NULL AUTO_INCREMENT=$NEW_VALUE$;
dove $NEW_VALUE$ deve essere sostituito dal successivo ID disponibile in modo che la sequenza non venga reimpostata su 1.