Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2009, 17:13   #1
Artanis
Пользователь
 
Регистрация: 28.10.2009
Сообщений: 15
Сообщение PL/SQL для oracle

Имеем таблицу Table1 с атрибутами:
- atr1
- atr2
- atr3
- atr4
- atr5
надо написать триггер на проверку неповторяемости значений кортежей:
<atr1, atr2, atr3>

Т.е. нужно чтобы если комбинация (кортеж) значений <atr1 atr2 atr3> повторяется сработало исключение (raise) с сообщением об ошибке.

Вот этого я чото нигде не нашел. читал в книгах были примеры но не те.

Нужно использовать pl/sql диалекта oracle.
Artanis вне форума Ответить с цитированием
Старый 03.12.2009, 18:32   #2
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

создай уникальный индекс, в который включишь эти поля
субд сама все проверит
soleil@mmc вне форума Ответить с цитированием
Старый 03.12.2009, 18:41   #3
Artanis
Пользователь
 
Регистрация: 28.10.2009
Сообщений: 15
По умолчанию

да вот я понять не могу как это имеено записать на plsql . представить логически могу а записать чото не получается
Artanis вне форума Ответить с цитированием
Старый 03.12.2009, 19:40   #4
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

к ПиЭлю это не имеет отношения
чистый ДДЛ
Код:
Создание индекса: 

   CREATE [UNIQUE] INDEX <имя_индекса> ON <имя_таблицы> (<имя_столбца>,...)
soleil@mmc вне форума Ответить с цитированием
Старый 03.12.2009, 21:41   #5
Artanis
Пользователь
 
Регистрация: 28.10.2009
Сообщений: 15
По умолчанию

блин а на конкретном примере?
Artanis вне форума Ответить с цитированием
Старый 06.12.2009, 09:37   #6
Artanis
Пользователь
 
Регистрация: 28.10.2009
Сообщений: 15
Вопрос

надо юзать только (именно) pl/sql
Artanis вне форума Ответить с цитированием
Старый 06.12.2009, 19:11   #7
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

тогда делай проверку на триггере (или напиши функу, которая по входным параметрам - значения указанных полей - вернет результат - будет ли эта новая запись дублем или нет и потом юзать эту функу каждый раз на триггере - но есть вариант получить мутатинг)
и что собсна ты или твой препод понимаете в этой конкретной задаче под пиэлем?
soleil@mmc вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Oracle pl/sql МаксMorfey Помощь студентам 0 02.12.2009 16:12
база данных на языке SQL(ORACLE) j_Q SQL, базы данных 1 24.01.2009 23:02
Создание отчётов из (Oracle/SQL) LIBRA БД в Delphi 17 21.02.2008 11:34