Mysql
 sql >> Database >  >> RDS >> Mysql

Ricevere errori di immissione duplicati da Hibernate, è colpa di MySQL?

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.