![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
SQL [D5, Paradox, ]
Сашка © (2001-12-20 20:11:00)Добавляю в БД новую запись. Так вот мне нужно проверить: если она уже внесена в таблицу, то не вносить её. Как мне лучше всего это сделать?
Boo (2001-12-20 23:46:00) [1]А я ведь знал, знал...
SergVlad (2001-12-20 23:35:00) [2]> Boo
Не морочай людям голову индексами подобными триггерам.
Вопрос по Парадоксу был.
Но кое в чем ты прав.
Использование ответа Подгорецкого - источник сбоев при многопользовательской работе.
За время между "SELECT.." и скажем "UPDATE.." другой пользователь может
добавить аналогичную запись.
Поэтому более правильным является использование уникального индекса
по нужным полям и отлавливание exception.
Boo (2001-12-20 22:03:00) [3]> panov
в SQL-серваке (в частности MSSQL) - триггеры, или нечто подобное (индексы), а то вдруг в проге надо делать море запросов с такими ограничениями...
panov (2001-12-20 21:38:00) [4]Что значит "на уровне базы" ?
Boo (2001-12-20 21:32:00) [5]>panov
Я в курсе, что исчерпывающий ответ (для клиента), а вот всетаки на уровне базы моно что-нибудь сделать?
panov (2001-12-20 21:31:00) [6]>Boo © (20.12.01 21:01)
>Сашка (20.12.01 21:20)
Анатолий Подгорецкий дал вполне исчерпывающий ответ.
Boo (2001-12-20 21:30:00) [7]>Сашка
А вот в ентом почом врядли смогу (юзаю MSSQL), но может моно использовать уникальный ключ (индекс), содержащий ВСЕ поля таблицы...
А может я и глупость сморозил...
Сашка (2001-12-20 21:20:00) [8]>Boo
Да, ты прав.
Boo (2001-12-20 21:01:00) [9]>Anatoly Podgoretsky
XXX - енто было круто :-)
только я вот думаю, чеку надо было енто на уровне базы
>Сашка
или я не прав?
Anatoly Podgoretsky (2001-12-20 20:54:00) [10]С помощью функции
SELECT Count(*) From xxx where условие