sql >> Base de Datos >  >> RDS >> Mysql

Obtener errores de entrada duplicados de Hibernate, ¿es culpa de MySQL?

El incremento es definitivamente malo si tiene más de un proceso escribiendo en la misma tabla:seguramente tendrá colisiones.

Dado que estamos hablando de MySQL, lo más fácil de usar sería identity . En su mapeo de Hibernate:

<generator class="identity"/>

En su secuencia de comandos 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 modificar una tabla existente:

ALTER TABLE `my_table`
  CHANGE COLUMN `id` `id` int(11) NOT NULL AUTO_INCREMENT=$NEW_VALUE$;

donde $NEW_VALUE$ debe reemplazarse por la siguiente identificación disponible para que la secuencia no se restablezca a 1.