Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Заполнение нескольких таблиц одновременно / 7 сообщений из 7, страница 1 из 1
02.08.2011, 22:58:58
    #37377781
rdk
rdk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение нескольких таблиц одновременно
Всем, Доброго времени суток!
Ребята, помогите решить след задачу.
Есть форма с полями Имя, Фамилия, Адрес (это не полный список). Есть две таблицы: Parent и Child. Parent имеет поля ID (int, AI, PK), Name (text) LastName(text). Child имеет поля ID(int, AI,PK), Adress(text), ID_Parent(int, FK). Отношение м.у таблицами 1:М.
Необходимо записать значения имя и фамилию в табл PArent, получить значение поля ID, и всnавить это значение в поле Child.ID-PArent, ну и вставить адрес соответственно. Как получить значение ID из табл Parent? т.е. осуществить синхронный ввод в разные таблицы данные для одного и того же пользователя.
При этом надо учитывать, что
1) Данные могут заносится сразу многими пользователями (это вопрос наиболее острый). и для каждого пользователя необходимо получить созданный id и внести ее в дочернюю таблицу.
2) Для одного пользока может быть несколько адресов

Заранее все спасибо!
...
Рейтинг: 0 / 0
03.08.2011, 00:17:33
    #37377876
basicv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение нескольких таблиц одновременно
rdk,

Код: plaintext
1.
2.
3.
INSERT INTO parent ...
int AI = SELECT LAST_INSERT_ID()
INSERT INTO child SET ID_Parent=AI, ...
...
Рейтинг: 0 / 0
03.08.2011, 10:09:35
    #37378187
rdk
rdk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение нескольких таблиц одновременно
basicv,

Спасибо большое за ответ! конструкция мне ясна. Единственное что мне не совсем понятно, если форма будет заполняться несколькими пользователями одновременно, не получится ли так, что выполнятся несколько операций insert into parent... и лишь потом выполнится операция int AI= select LAST_INSERT_ID()... и нарушится последовательность. Как все эти три операции объединить в одну транзакцию?
...
Рейтинг: 0 / 0
03.08.2011, 10:11:20
    #37378189
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение нескольких таблиц одновременно
rdk,

Не поленитесь заглянуть в доку по предложенной функции.
Если кратко - LAST_INSERT_ID() возвращает последнее значение в текущей сессии.
...
Рейтинг: 0 / 0
03.08.2011, 10:52:20
    #37378291
rdk
rdk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение нескольких таблиц одновременно
miksoft,

Вас понял! Обязательно загляну!Спасибо большое за помощь!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
23.06.2014, 18:00:25
    #38677743
Prog_123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение нескольких таблиц одновременно
rdk, Здравствуйте!

У меня похожая проблема. Подскажите, пожалуйста, что значит AI в ID (int, AI, PK)? Я так поняла, что int - это интеджер, PK - праймери ки, а AI что такое?

Зараннее благодарю.
...
Рейтинг: 0 / 0
23.06.2014, 18:20:04
    #38677777
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение нескольких таблиц одновременно
auto increment
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Заполнение нескольких таблиц одновременно / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]