Форум: "Базы";
Поиск по всему сайту: 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.018 c
14-75650          alex16                2001-11-27 06:31  2002.01.24  
Сайты


1-75623           Belov                 2002-01-08 15:43  2002.01.24  
Изменение размеров картинки


3-75496           Kirill                2001-12-18 17:32  2002.01.24  
ADO и новая запись


4-75719           ZEE                   2001-09-16 03:33  2002.01.24  
Вставка/замена в TEdit


6-75646           VideoLord             2001-10-31 21:19  2002.01.24  
Indy - idTCPServer