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

Postgresql:2列の和集合に対する一意の制約

    除外制約 を使用できます。 必要なインデックスは1つだけです:

    alter table transaction_links
      add constraint check_tx
      exclude using gist ( (array[send_id, receive_id]) with &&);
    

    && 演算子は、配列の「オーバーラップ」演算子です。これは、「配列内の要素の順序に関係なく、要素が共通していることを意味します。この場合、制約により、(send_id, receive_id) (列に関係なく)テーブルの他の行に表示されます。

    ただし、intarray が必要です。 そのための拡張機能。

    オンラインの例: https://rextester.com/QOYS23482




    1. MySQLREPLACEINTOのSQLServer2005実装?

    2. Rails has_many:through PG ::Error:ERROR:列参照IDがあいまいなエラーです

    3. タイムゾーンなしで文字列をタイムスタンプに変換する方法

    4. PostgreSQLで週の開始日と終了日の文字列を取得するにはどうすればよいですか?