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

At få duplikerede indtastningsfejl fra Hibernate, er MySQL skylden?

Increment er bestemt dårligt, hvis du har mere end én proces, der skriver til den samme tabel - du er forpligtet til at have kollisioner.

Da det er MySQL vi taler om, ville den nemmeste ting at bruge være identity . I din Hibernate-tilknytning:

<generator class="identity"/>

I dit MySQL-script:

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;

Sådan ændrer du en eksisterende tabel:

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

hvor $NEW_VALUE$ skal erstattes af det næste tilgængelige id, så sekvensen ikke nulstilles til 1.




  1. Kører lagrede procedurer i databasetransaktion i Postgres?

  2. SQL Server Process Queue Race Condition

  3. Sådan finder du den sidste dag i måneden i SQL Server

  4. MySql-forespørgsel Erstat NULL med tom streng i Select