sql >> データベース >  >> RDS >> Mysql

Hibernateから重複エントリエラーを取得していますが、MySQLのせいですか?

    同じテーブルに複数のプロセスを書き込んでいる場合、インクリメントは間違いなく悪いです-衝突が発生することになります。

    私たちが話しているのはMySQLなので、最も簡単に使用できるのはidentityです。 。 Hibernateマッピングの場合:

    <generator class="identity"/>
    

    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;
    

    既存のテーブルを変更するには:

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

    ここで、$ NEW_VALUE $は、シーケンスが1にリセットされないように、次に使用可能なIDに置き換える必要があります。




    1. PostgreSQLを使用して現在のデータベースのテーブルを一覧表示する方法

    2. php-ユーザーがお気に入りの投稿を行えるようにする

    3. PHPでORDIE()はどのように機能しますか?

    4. 本番PostgreSQLデータベースの管理を容易にする