sql >> Databasteknik >  >> RDS >> Mysql

Att få dubbla inmatningsfel från Hibernate, är MySQL att skylla på?

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.




  1. Databasschema, autoinkrement

  2. Skapa en CHECK-begränsning i SQLite

  3. Är mina MySQL-serveranslutningar krypterade och säkra?

  4. Returnera null för date_format när input är null i mysql