Jonathan Vanasco <postgres@xxxxxxxx> writes: > Given: > create table test_a ( > id serial , > name_1 varchar(32) , > name_2 varchar(32) > ); > I need name_1 and name_2 to both be unique so that: > name_1 never appears in name_1 or name_2 > name_2 never appears in name_2 or name_1 I think you should consider redesigning your table layout. Whatever kluge you come up with to enforce that is not going to be better than changing the layout. You should put all the names into one unique column and devise a different representation for whatever the name_1 vs name_2 relationship is supposed to be. regards, tom lane