CREATE TABLE foo (
dt AS DATE NOT NULL,
type AS TEXT NOT NULL,
CONSTRAINT unique_dt_type UNIQUE(dt,type) -- check constraint(?)
)
Имея мозговой шок, пытаясь думать о правильном синтаксисе, чтобы создать уникальное ограничение, когда существует только определенное условие.
Учитывая, что type
может иметь значения A-F
, может быть только один A
за дату, но может быть несколько B-F
. Пример хорошей таблицы:
2010-01-02 | 'A' -- only one
2010-01-02 | 'B' -- can have multiple
2010-01-02 | 'B'
2010-01-02 | 'B'
2010-01-02 | 'C' -- can have multiple
2013-01-02 | 'A' -- only one
2010-01-02 | 'B' -- can have multiple
2010-01-02 | 'B'
2013-01-02 | 'F' -- can have multiple
2013-01-02 | 'F'
Пробовал проверку чтения/уникальный синтаксис, но примеров не было. CHECK
приблизился, но ограничил его только диапазоном и не использовался в сочетании с сценарием UNIQUE
. Также попробовал поиск, но мои навыки поиска либо не совпадают, либо нет похожих вопросов.