Как объединить несколько INSERT в один запрос
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Как объединить несколько INSERT в один запрос... Expand / Collapse
Автор
Сообщение
10.09.2007 12:13
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 14.09.2007 16:26
Сообщ.: 123, Visits: 1 095
Я с MySQL недавно... поэтому вопрос чайника.
Как объединить несколько команд INSERT или REPLACE в один запрос?

Допустим в документе будет 1000 строк. Мне кажется один запрос из 1000 операторов INSERT будет передаваться на сервер быстрее, чем 1000 запросов по-отдельности.

Это особенно важно, если сервер расположен в Интернет на виртуальном хостинге и доступ к нему осуществляется через медленный интернет (например Dial-Up или GPRS).
Сообщ. #915835
10.09.2007 12:37
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Раздели их точкой с запятой.
Сообщ. #915837
10.09.2007 14:06
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Кроме того INSERT допускает вставку нескольких строк одним оператором:

INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);

Подробности в документации.

Сообщ. #915839
14.09.2007 16:28
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 14.09.2007 16:26
Сообщ.: 123, Visits: 1 095
Точкой с запятой тоже сначала пробовал делить - нет, такой синтаксис (во всяком случае в моём драйвере ODBC) не поддерживается и phpAdmin тоже не работает.

А второй вариант помог. Спасибо!
У меня документация на русском, там про такое не было написано.
Сообщ. #915938
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 8:50