Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вставить данные в две таблицы, вставить данные в две связанные таблицы 
:(
    Опции темы
Atata
  Дата 6.7.2011, 01:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 6.7.2011

Репутация: нет
Всего: нет



Есть две таблицы:
Код

 CREATE TABLE  `test1` (
`id` INT NOT NULL AUTO_INCREMENT ,
`data1` VARCHAR( 255 ) NOT NULL ,
`data2` VARCHAR( 255 ) NOT NULL ,
PRIMARY KEY (  `id` )
) ENGINE = MYISAM ;

CREATE TABLE  `test2` (
`id` INT NOT NULL AUTO_INCREMENT ,
`test1_id` INT NOT NULL ,
`data` VARCHAR( 255 ) NOT NULL ,
PRIMARY KEY (  `id` )
) ENGINE = MYISAM ;


test2.test1_id = test1.id

Нужно одновременно заполнить две таблицы большим количеством данных, при этом сохранив связь.
Данных будет много (больше тысячи), заполняются скриптом.
Как это можно сделать?
PM MAIL   Вверх
FINANSIST
Дата 6.7.2011, 08:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Статус: Жив
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 11.4.2008
Где: Москва

Репутация: нет
Всего: 23



Цитата(Atata @  6.7.2011,  01:17 Найти цитируемый пост)
 при этом сохранив связь.
test2.test1_id = test1.id


FK не нашел  а значит связи нет


Цитата(Atata @  6.7.2011,  01:17 Найти цитируемый пост)
Как это можно сделать

insert into 

Это сообщение отредактировал(а) FINANSIST - 6.7.2011, 08:48


--------------------
“...Брали корову рыжую одну, отдавать будем корову рыжую одну, чтобы не нарушать отчетности”
Эдуард Успенский, “Каникулы в Простоквашино”
PM MAIL ICQ   Вверх
Atata
Дата 6.7.2011, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 6.7.2011

Репутация: нет
Всего: нет



Код

FK не нашел  а значит связи нет


что это значит?

Через INSERT TO понятно, я делаю вставку в test1, получаю test1.id (который AUTO_INCREMENT), теперь мне нужно вставить в test2 и заполнить test2.test1_id. 
получается вставка через два запроса. а у меня данных пару тысяч. получается минимум две тысячи запросов в бд?
PM MAIL   Вверх
Данкинг
Дата 6.7.2011, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 1
Всего: 130



Atata, а чем обычный INSERT INTO ....... не устраивает? Или я чего-то не понимаю?


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Atata
Дата 6.7.2011, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 6.7.2011

Репутация: нет
Всего: нет



Я же объясняю: данных очень много.
Чтобы мне вставить одно поле, нужно два инсерта (сделать первый инсерт, получить last_insert_id, сделать второй insert)
Если я гружу 10к данных - это 20к запросов. Хотелось бы это как то оптимизировать
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.0445 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.