Форум: "Базы";
Поиск по всему сайту: 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.014 c
3-75470           vano                  2001-12-07 16:21  2002.01.24  
try except


1-75545           Антипов Николай       2002-01-05 17:37  2002.01.24  
Доступ к файлу


14-75664          Vitaly                2001-11-29 14:20  2002.01.24  
Из дневника ученика:


4-75720           ILYAKA                2001-11-23 18:43  2002.01.24  
Как взять список окон в Windows (жел-но с Handl-ами)


3-75495           Havez                 2001-12-19 18:52  2002.01.24  
Постоянно портится Autoincrement поле