1

同様の質問に対する答えは、問題を無視することでした。私は単にそれが最善の答えだとは思わない。

私のデータベースの関連テーブル:

  • 会場 (会場ID、州、都市、会場)
  • メンバー ( memberid、 lastname 、 firstname 、 birthday 、 phone 、Recruitmentid )
  • イベント ( venueid、type、memberid、vip、eventfee、costid、date )

Venueid は会場の auto_incremented プライマリ キーであり、州、都市、および会場の複合は一意である必要があり、そうでない場合、挿入は失敗します。

それはすべて機能しますが、挿入が失敗してもvenueidが増加するのが気になるので、主キーのギャップが発生します。一意性を強制するより良い方法はありますか、またはこれらのテーブルを関連付けようとしている方法はベストプラクティスではなく、実際に組み合わせる必要がありますか?

4

2 に答える 2

1

この MYSQL を回避する実際の方法はなく、PostGre は同じ動作をします。トランザクションが失敗した場合でも、auto_incremented 値はロールバックされません。

http://dev.mysql.com/doc/refman/5.1/en/innodb-auto-increment-handling.html

問題に最も近い適切な解決策は、自動インクリメント ロックを利用することです。

于 2013-09-03T14:19:49.180 に答える