Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / хитрое ограничение / 3 сообщений из 3, страница 1 из 1
11.02.2014, 21:14:46
    #38557768
sergq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хитрое ограничение
Здравствуйте.

Возможно ли такое ограничение на поле таблицы сделать.

Поле2 должно быть NOT NULL если поле1 in(1,2,3). если условие не соблюдается, то ругаться исключением.
На уровне вьюхи понятно как сделать, а вот на уровне таблицы нет


Спасибо
...
Рейтинг: 0 / 0
11.02.2014, 21:37:12
    #38557793
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хитрое ограничение
Триггером.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
11.02.2014, 22:04:47
    #38557822
Таблоид
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хитрое ограничение
sergq,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SQL> recreate table tx(x int not null, y int, constraint y_chk check (x in(1,2,3) and y is not null) );
SQL> insert into tx(x,y) values(null, 100);
Statement failed, SQLSTATE = 23000
validation error for column X, value "*** null ***"
SQL> insert into tx(x,y) values(0, 100);
Statement failed, SQLSTATE = 23000
Operation violates CHECK constraint Y_CHK on view or table TX
-At trigger 'CHECK_11'
SQL> insert into tx(x,y) values(1, 100);
SQL> insert into tx(x,y) values(2, 100);
SQL> insert into tx(x,y) values(3, 100);
SQL> insert into tx(x,y) values(4, 100);
Statement failed, SQLSTATE = 23000
Operation violates CHECK constraint Y_CHK on view or table TX
-At trigger 'CHECK_11'
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / хитрое ограничение / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]