Inkrement är definitivt dåligt om du har mer än en process som skriver till samma tabell - du är skyldig att få kollisioner.
Eftersom det är MySQL vi pratar om är det enklaste att använda identity
. I din Hibernate-mappning:
<generator class="identity"/>
I ditt MySQL-skript:
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;
För att ändra en befintlig tabell:
ALTER TABLE `my_table`
CHANGE COLUMN `id` `id` int(11) NOT NULL AUTO_INCREMENT=$NEW_VALUE$;
där $NEW_VALUE$ ska ersättas av nästa tillgängliga id så att sekvensen inte återställs till 1.