Форум: "Базы";
Текущий архив: 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]А я ведь знал, знал...
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.01.24;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c