Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Obtendo erros de entrada duplicados do Hibernate, o MySQL é o culpado?


O incremento é definitivamente ruim se você tiver mais de um processo gravando na mesma tabela - você provavelmente terá colisões.

Como estamos falando do MySQL, a coisa mais fácil de usar seria identity . No seu mapeamento do Hibernate:
<generator class="identity"/>

No seu 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;

Para alterar uma tabela existente:
ALTER TABLE `my_table`
  CHANGE COLUMN `id` `id` int(11) NOT NULL AUTO_INCREMENT=$NEW_VALUE$;

onde $NEW_VALUE$ deve ser substituído pelo próximo id disponível para que a sequência não seja redefinida para 1.