powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Select в check constraint. ASA9
4 сообщений из 4, страница 1 из 1
Select в check constraint. ASA9
    #32623327
Чечако
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как в check constraint правильно вставить select.
Для провери наличия записи с оределенными значениями полей.
Изваращаться через функцию?
вариатнты
Код: plaintext
check(not exists (select from t1 where усл1))
или
Код: plaintext
check(select count(*) from t1 where усл1))
прокатывают только при пустой таблице.
...
Рейтинг: 0 / 0
Select в check constraint. ASA9
    #32623387
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все работает:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
 // Вариант 1
 
ALTER TABLE GraphSlide
  ADD CONSTRAINT Test CHECK(
      Graph_id IN (
        SELECT Graph_id 
        FROM Graph 
        WHERE TypeGraph = 'С' )
  );

 // Вариант 2
 
ALTER TABLE "DBA"."GraphSlide" ADD CONSTRAINT "Test" check(
  EXISTS(
    SELECT * 
    FROM Graph AS g 
    WHERE GraphSlide.Graph_id = g.Graph_id AND
      g.TypeGraph = 'С'));
Для правильного использования полей проверяемой таблицы в запросе, указанном в CHECK нужно обращаться к ним по имени их таблицы, т.е. в данном случае имя таблицы используется механизмом CHECK в качестве алиаса.

P.S. И еще следует учесть, что если сделать на табличку такой CHECK и выполнить добавление или обновление миллиона записей, то можно идти смело пить кофе - будет вызвано миллион запросов. Для таких случаев выгоднее получается делать AFTER триггера на EACH STATEMENT, чтобы в них одним запросом можно было сделать проверку на весь массив добавляемых и изменяемых записей.
...
Рейтинг: 0 / 0
Select в check constraint. ASA9
    #32623438
Чечако
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сенька бери мяч.Вот где собака порылась!!!!!!!!!!!!!!!!
Алиасы я ставил только на с одно стороны равно.Типа
Код: plaintext
t1.f1=f1
.
Я не волшебник я токо учусь.
...
Рейтинг: 0 / 0
Select в check constraint. ASA9
    #32623448
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
За вопросами о волшебстве в этот форум - в доке это все равно нигде не описано :)
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Select в check constraint. ASA9
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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