![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Гибкая уникальность [D5, IB6.x]
Andrey V. © (2004-02-03 20:05:00)
Понятно , что для предотвращения добавления дубликатов
заводится уникальный индекс.
А как Вы поступаете в случае, если некое поле не должно дублироваться
если оно больше 0, а 0, типа , может существовать у многих записей ?
Sandman25 (2004-02-05 10:38:00) [1]
[11] Andrey V. © (04.02.04 22:21)
Очевидно, что ХП может проверить на вставляемое значение, и если это 0, то на уникальность не проверять.
Andrey V. (2004-02-04 22:21:00) [2]
> Sandman25 © (04.02.04 13:19) [8]
В том-то и дело, что НУЛЮ разрешено повторяться , а БОЛЬШЕ нуля - нет.
Ну и конечно речь идет не о первичном ключе.
Всем - спасибо, сделаю ч/з триггер+хп.
Sandman25 (2004-02-04 13:25:00) [3]
[9] Sergey_Masloff (04.02.04 13:20)
Согласен. Я всего лишь ответил на вопрос. Кстати, через триггеры надежнее, так что в критических по безопасности задачах лучше через них. А то вдруг кто-то из программеров в другой ХП забудет, что нужно вызывать данную ХП, и вставит данные напрямую в таблицу.
Sergey_Masloff (2004-02-04 13:20:00) [4]
Sandman25 © (04.02.04 13:19) [8]
[7] Vladimir_Shalamberidze@yandex.ru (04.02.04 13:12)
>Триггер вызывает хранимую процедуру, которая raise exception, >если в таблице уже есть вставляемое/изменяемое значение
ИМХО изврат
Vlad © (03.02.04 20:13) [1] как мне кажется предлагает оптимальный вариант
Sandman25 (2004-02-04 13:19:00) [5]
[7] Vladimir_Shalamberidze@yandex.ru (04.02.04 13:12)
Триггер вызывает хранимую процедуру, которая raise exception, если в таблице уже есть вставляемое/изменяемое значение
Vladimir_Shalamberidze@yandex.ru (2004-02-04 13:12:00) [6]
Посмотрю я как вы это через триггер сделаете :)
asp (2004-02-04 10:00:00) [7]
Johnmen © (04.02.04 09:51) [5]> ?
Ладно. Как-нибудь посмотрю на описание CHECK...
Johnmen (2004-02-04 09:51:00) [8]
>asp © (04.02.04 09:48)
С пом. констрейнта типа CHECK.
asp (2004-02-04 09:48:00) [9]
Johnmen © (04.02.04 09:41) [3]> В Interbes"е почти 0 и заинтересовало след. как это c помошью CONSTRAINT"ов?
Johnmen (2004-02-04 09:41:00) [10]
1. С помощью триггеров.
2. С помощью констрейнтов.
Alex_Bredin (2004-02-04 09:34:00) [11]
раз есть такая необходимость, то это уже не первичный ключ
заводится еще одно поле, уникальное и оно служит ключом
Vlad (2004-02-03 20:13:00) [12]
Вставляй записи не напрямую в таблицу, а через ХП, и в ней отслеживай все что угодно.