Вниз
Скачать: CL | DM;

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]

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



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.01 c
1-75574
hacker
2002-01-01 21:40
2002.01.24
Проблема с передачей параметрой из DLL


3-75527
Ross
2001-12-19 20:25
2002.01.24
Трудный вопрос для меня. Надо заменить:


7-75696
Алексей Саньков
2001-10-05 21:55
2002.01.24
Как сделать в Винде 256 цветов 640х480 на видюхе Acumos


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


1-75577
Vacheslav
2002-01-06 20:52
2002.01.24
Подскажите алгоритм




   Наверх