Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: можно ли одним запросом добавить несколько записей?
 
 автор: tAleks   (01.09.2006 в 18:32)   письмо автору
 
 

У меня есть форма, я в ней забиваю 10 цен... которые должны стать 10 строчками водной таблице.

У меня в голове такие варианты как эти данные добавить в таблицу:

1. перебрать массив циклом и сделать 10 запросов.

2. Как-нибудь одним запросом. Но я не знаю как, и не знаю возможно ли это вообще?

Проконсультируйте по второму пункту, плиз...
... ну и если есть еще какие варианты... тоже инересно...

   
 
 автор: Trianon   (01.09.2006 в 19:06)   письмо автору
 
   для: tAleks   (01.09.2006 в 18:32)
 

2.
можно.

INSERT INTO goods (name, price)     VALUES
        ('apples', 40),
        ('oranges', 80),
        ('cherry',    80);

   
 
 автор: tAleks   (07.09.2006 в 22:47)   письмо автору
 
   для: Trianon   (01.09.2006 в 19:06)
 

Есть ли ограничение на количество одновременно добавляемых записей в базу, таким запросом?

У меня прайс лист примерно 1000 наименований. Я загружаю его из CSV-файла.

Я думаю так: Сформировать циклом запрос, и потом одним запросом все это отправить в базу. Я думаю что это будет лучше, чем каждую запись отдельным запросом.

Я правильно думаю?

   
 
 автор: Trianon   (07.09.2006 в 23:28)   письмо автору
 
   для: tAleks   (07.09.2006 в 22:47)
 

Есть ограничение не на число записей, а на общую длину запроса. Она не должна превышать размер буфера MySQL. Так что всё зависит не столько только от количества записей , сколько от их суммарного размера.
Возможно, Ваш CSV и не превысит лимит.
В любом случае, пакетная загрузка предпочтительней одиночной.

   
 
 автор: tAleks   (08.09.2006 в 00:53)   письмо автору
 
   для: Trianon   (07.09.2006 в 23:28)
 

Как узнать размер буфера MySQL?

   
 
 автор: cheops   (08.09.2006 в 01:25)   письмо автору
 
   для: tAleks   (08.09.2006 в 00:53)
 

Для этого необходимо посмотреть содержимое серверной переменной max_allowed_packet при помощи запроса
SHOW VARIABLES LIKE 'max_allowed_packet';

PS Скорее всего она будет пару мегабайт.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования