Как в SQL базе сделать так чтобы несколько столбцов могли иметь только разные значение в одной строке?
Есть PostgreSQL База нужно , чтобы столбец col_1 и col_2 могли иметь только разные значение, то есть
нужно предотвратить тот сценарий где делается insert с равными друг другу значениями col_1 и col_2.
Есть ли решение этой задачи на уровне СУБД например вовремя создания таблицы и как лучше всего добиться этого условия ?
Ответы (1 шт):
Автор решения: Akina
→ Ссылка
CREATE TABLE ... ( -- создание таблицы
... , -- всякие прочие поля
col1 ... , -- поле col1
... , -- ещё всякие прочие поля
col2 ... , -- и теперь поле соl2
... , -- и снова всякие прочие поля и иные конструкции
-- ну и добрались до проверки нужного условия
CONSTRAINT col1_neq_col2 CHECK (col1 != col2),
-- теперь в таблице никаким штатным способом не может появиться запись,
-- значения полей которой не выполняют этого условия
... ,
);
Ну а если таблица уже имеется, то вносим в неё изменения b добавляем показанное ограничение соотв. ALTER TABLE. Предварительно проверив, что все существующие записи не нарушают его. А если такие записи есть - предварительно исправляем либо удаляем их.