Правильный (и простой) способ сделать это реляционно - создать две таблицы, T1 и T2, где T2 имеет отношение внешнего ключа (много-к-одному) обратно к T1.Уникальный индекс / ограничение объявляется в T2.yourUniqueColumn, и если вам необходимо различать значения в этом столбце, добавьте еще один столбец в T2:
T1
id
foo
T2
t2id
t1id fk references T1
yourUniqueColumn [unique index/constraint]
extraColumnToDescribeTheValueInUniqueColumn
Вы можете изначально заполнить T2 таким образом (предполагается, что-инкрементный PK в T2):
insert into T2
(t1id, yourUniqueColumn, extraColumn)
select t1.id as t1id, T1.A as yourUniqueColumn, 'A' as extraColumn from T1
insert into T2
(t1id, yourUniqueColumn, extraColumn)
select T1.id as t1id, T1.B as yourUniqueColumn, 'B' as extraColumn from T1
Как правило, всякий раз, когда вы обнаруживаете, что делаете процедурно при работе с реляционной базой данных, самое время сделать шагназад и рассмотрим рефакторинг.