|
MySQL.RU - Webboard
Вернуться
Внесение записей!!! (n@vigator) 26/04/2004 - 19:15:13
Re: Внесение записей!!! (Dinky) 26/04/2004 - 20:03:17
Re: Внесение записей!!! (DrSoft) 28/04/2004 - 13:18:19
Re: Внесение записей!!! (Dinky) 28/04/2004 - 21:42:12
Re: Внесение записей!!! (DrSoft) 29/04/2004 - 12:06:21
Re: Внесение записей!!! (Dinky) 29/04/2004 - 18:43:09
> Original message text:
> From: n@vigator - 26/04/2004 - 19:15:13
> Subject:Внесение записей!!!
> -----------------
> Я открываю сессию и начинаю делать select, после чего основываясь на результатах этого select'а делаю insert.
> Возможна ли следующая ситуация: в промежутке между select'ом и insert'ом кто-то произвел insert. Изменятся ли данные в моей сессии или я буду продолжать работать со своим экземпляром БД и соотвественно для меня никаких изменений не будет???
>
From: Dinky - 29/04/2004 - 18:43:09
Subject:Внесение записей!!!
-----------------
>Вставляються новые записи....в таблицу....
>но предварительно чтобы не было совпадений из этой тоблицы >делаеться выборка проверяеться нет ли уже такого значения.....
каких совпадений? чего с чем? сорри, но муть какая-то, по-прежнему одни общие слова и никакой конкретики :(
Ладно, рассмотрите классический вариант реализации "руками" связи один-ко-1/многим и решите, подходит ли это вам:
Table 1 (id autoincrement, ...)
Table 2 (fk_id, ...)
алгоритм:
1. вставляем запись в Table1, В той же сессии получаем new_id=last_insert_id()
2. вставляем полученный new_id в Table2 вместе с прочими данными
Всё! никаких блокировок и дубликатов, сколько угодно клиентов могут это делать одновременно.
Если по какой-либо причине невозможно воспользоваться генерацией неповторяющегося id, тогда изучите блокировки/транзакции тут: http://dev.mysql.com/doc/mysql/ru/ANSI_diff_Transactions.html
хорошо написано ;)
--
Dmitry
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
14379
|
|