Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




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, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
14379



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |