Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.24;
Скачать: [xml.tar.bz2];




Вниз

SQL 


Сашка   (2001-12-20 20:11) [0]

Добавляю в БД новую запись. Так вот мне нужно проверить: если она уже внесена в таблицу, то не вносить её. Как мне лучше всего это сделать?



Anatoly Podgoretsky   (2001-12-20 20:54) [1]

С помощью функции
SELECT Count(*) From xxx where условие



Boo   (2001-12-20 21:01) [2]

>Anatoly Podgoretsky
XXX - енто было круто :-)
только я вот думаю, чеку надо было енто на уровне базы

>Сашка
или я не прав?



Сашка   (2001-12-20 21:20) [3]

>Boo
Да, ты прав.



Boo   (2001-12-20 21:30) [4]

>Сашка
А вот в ентом почом врядли смогу (юзаю MSSQL), но может моно использовать уникальный ключ (индекс), содержащий ВСЕ поля таблицы...
А может я и глупость сморозил...



panov   (2001-12-20 21:31) [5]

>Boo © (20.12.01 21:01)
>Сашка (20.12.01 21:20)
Анатолий Подгорецкий дал вполне исчерпывающий ответ.



Boo   (2001-12-20 21:32) [6]

>panov
Я в курсе, что исчерпывающий ответ (для клиента), а вот всетаки на уровне базы моно что-нибудь сделать?



panov   (2001-12-20 21:38) [7]

Что значит "на уровне базы" ?



Boo   (2001-12-20 22:03) [8]

> panov
в SQL-серваке (в частности MSSQL) - триггеры, или нечто подобное (индексы), а то вдруг в проге надо делать море запросов с такими ограничениями...



SergVlad   (2001-12-20 23:35) [9]

> Boo
Не морочай людям голову индексами подобными триггерам.
Вопрос по Парадоксу был.
Но кое в чем ты прав.
Использование ответа Подгорецкого - источник сбоев при многопользовательской работе.
За время между "SELECT.." и скажем "UPDATE.." другой пользователь может
добавить аналогичную запись.
Поэтому более правильным является использование уникального индекса
по нужным полям и отлавливание exception.



Boo   (2001-12-20 23:46) [10]

А я ведь знал, знал...




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.24;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.023 c
1-75586           RealGrey              2002-01-05 16:36  2002.01.24  
Не могу понять ощибку.


1-75601           Delphimun             2002-01-07 15:45  2002.01.24  
Как сделать определённое окно главным?


3-75535           sky3d                 2001-12-21 18:24  2002.01.24  
SQL запрос


14-75674          Koks                  2001-11-29 17:56  2002.01.24  
Мастаки !


3-75534           Hawk2                 2001-12-21 12:39  2002.01.24  
Индескация с помощью SQL-запросов.