2

私は最近、postgres の除外制約を発見しました。これは、私が求めたものを正確に有効にします (数値範囲タイプがまだ存在しないため、少なくとも現時点では時間範囲について)。

私が理解していることから、オラクルや他のRDBMSには、制約を除外する同等の機能がありません。そのようなテーブル トランザクションへの挿入を安全にする唯一のチャンスは、テーブルをロックすることですか? それとも別の方法がありますか?

編集: (@ Clodoaldo) 2 つのトランザクションが競合するレコードを挿入する場合、postgres は行レベルのロックを使用します。私の質問は次のとおりです。RDBMS に除外制約がない場合、重複しない範囲とトランザクションの安全性が必要な場合は、テーブル全体をロックする以外に方法はないと思いますが、それは正しいですか? それとも、私が知らない方法がありますか?

職場では、範囲が重複しないテーブルを設計する必要が何度かありました。データベース内のデータの一貫性を確保するためのトランザクション セーフな方法を知りませんでした。除外制約について読んだとき、それで問題は解決したと思ったのですが、これは非標準なので、上司はあまり使いたがりません。

4

1 に答える 1

1

PostgreSQL を使用する場合、複数の時間範囲タイプとそれらの重複しない一意の制約が提供されます。

于 2015-01-19T05:36:56.797 に答える