次のようなテーブルの 2 つのフィールドに一意のインデックスを効率的に作成するにはどうすればよいですか? create table t (a integer, b integer);
ここで、2 つの異なる数値の一意の組み合わせは、表の同じ行に複数回出現することはできません。
つまり、a=1 かつ b=2 であるような行が存在する場合、a=2 で b=1、または a=1 で b=2 である別の行は存在できません。言い換えれば、2 つの数字はどのような順序でも 2 回以上一緒に現れることはありません。
そのような制約が何と呼ばれているのかわからないため、タイトルに「両面一意インデックス」という名前が付けられています。
更新:列 (a、b) に複合キーがあり、行 (1,2) がデータベースに存在する場合、別の行 (2,1) をエラーなしで挿入できます。私が探しているのは、同じ数字のペアが任意の順序で複数回使用されるのを防ぐ方法です...