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

複数の列にわたる一意の値の制約

    これを簡単に行うことはできません。 least() / greatest() アプローチはすべての場合に機能するとは限りません。

    Postgresにはいくつかの凝ったインデックス操作があります。ただし、最良の方法はジャンクションテーブルを使用することです。例:

    create table userPhones (
        userPhoneId bigint primary key ,
        userId bigint references users(id),
        phone_counter int check (phone_counter in (1, 2)),
        phone varchar,
        unique (userId, phone_counter),
        unique(phone)
    );
    

    これにより、ユーザーごとに電話番号の数も2つに制限されます。



    1. フォロワークラスター–SQLとNoSQLの展開を同期するための3つの主要なユースケース

    2. ひねりを加えたヘカトン:メモリ内TVP –パート1

    3. JavaPreparedStatementおよびONDUPLICATEKEY UPDATE:行が挿入されたか更新されたかを知るにはどうすればよいですか?

    4. postgresqlのインストールに失敗しました