Я пытаюсь создать новую таблицу в SQL Developer, которая имеет четыре столбца.В одном столбце есть числовое значение ORG_ID, этот ORG_ID может быть одинаковым для нескольких записей в таблице.Другой столбец называется DEFAULT_FLAG, этот столбец содержит только символ Y или N, обозначающий, является ли он записью по умолчанию для таблицы для этого ORG_ID.
Я пытаюсь создать CHECK в столбце DEFAULT_FLAG, который обеспечиваеттолько одна запись с Y для всех записей с одинаковым ORG_ID.Вот пример того, как это будет выглядеть:
xxxx|xxxx|ORG_ID|DEFAULT_FLAG
xxxx|xxxx|123456| Y
xxxx|xxxx|123456| N
xxxx|xxxx|987654| Y
xxxx|xxxx|567495| Y
В приведенной выше таблице вторая запись для ORG_ID 123456 должна быть отклонена, если Y был вставлен как DEFAULT_FLAG.
Я немного новичок в SQL, поэтому я провел исследование необходимости использования ограничения и проверки столбца.Я пытался написать свой, но это не сработало, код приведен ниже.
default_flag varchar(1)
constraint one_default Check(ORG_ID AND DEFAULT_FLAG != "Y"),