Форум: "Базы";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
ВнизЦелостность и транзакция Найти похожие ветки
← →
adias © (2004-02-25 16:13) [0]Есть 2 таблицы (А и Б).
Ключ таблицы А - ID
Ключ таблицы Б - ID1,+ поле ID1 для связи с ID1
таблицы А
****************
Транзакция.
вставка записи в таблицу А (формирование max(ID)+1)
вставка значения в таблицу Б (формирование max(ID1)+1)
КОНЕЦ
ТРАНЗАКЦИИ
***************************
ОПИСАНИЕ: если два юзера одновременно начнут транзакцию,
то один посылается нах... (ПРОВЕРЯЛ)
ВОПРОС: как избежать?
Примечание: пользоваться
специфическими функциями конкретной БД нельзя (там identity всякие и т.п.) и системными таблицами
тоже....
← →
Sandman25+1 (2004-02-25 16:26) [1]В ANSI SQL нет ни генераторов, ни автоинкрементных полей.
Значит, придется реализовывать своим механизмом (например, делать аналог генератора через таблицу из одного поля и одной записи).
← →
ADIAS © (2004-02-25 17:26) [2]получается надо делать еще одну таблицу, для всякого мусора и чем (на что) блокировать транзакцию???
← →
Sandman25+1 (2004-02-25 17:31) [3]Блокировать на запись, конечно.
← →
adias © (2004-02-25 17:50) [4]а глупый вопрос, а как? :-((
← →
Sandman25+1 (2004-02-25 17:53) [5]Не знаю, как для MS SQL.
Для Informix это выглядело бы как
LOCK TABLE mytable IN EXCLUSIVE MODE
← →
adias © (2004-02-26 09:06) [6]да, но это блокирует не запись, а страницу...
← →
Nikolay M. © (2004-02-26 10:07) [7]Блин, сколько же можно одно и то же спрашивать?!
http://rsdn.ru/article/db/midas_migration.xml#XSLTSECTION124143120120
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.029 c