Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / INSERT > INSERT > SELECT Одним запросом / 8 сообщений из 8, страница 1 из 1
20.05.2016, 08:19
    #39239663
nauseous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INSERT > INSERT > SELECT Одним запросом
Подскажите как собрать в один запрос:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SET @value := "bla bla bla";

INSERT INTO table1
SET
	value = @value
ON DUPLICATE KEY UPDATE
	value = VALUES(value);

INSERT INTO table2 (id) 
SELECT id
FROM table1
WHERE value = @value;


Спасибо!
...
Рейтинг: 0 / 0
20.05.2016, 08:49
    #39239675
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INSERT > INSERT > SELECT Одним запросом
Никак. Да и нафига это надо?
...
Рейтинг: 0 / 0
20.05.2016, 09:53
    #39239736
nauseous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INSERT > INSERT > SELECT Одним запросом
AkinaНикак. Да и нафига это надо?Один - Два запроса... Один наверное лучше с точки зрения нагрузки, так?
...
Рейтинг: 0 / 0
20.05.2016, 10:07
    #39239754
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INSERT > INSERT > SELECT Одним запросом
nauseousОдин наверное лучше с точки зрения нагрузки, так?В общем случае нет.
А вот послать серверу два запроса одним пакетом - может быть и разумно. Если коннектор умеет... ну или оформить эту хрень как процедуру.
...
Рейтинг: 0 / 0
20.05.2016, 10:37
    #39239785
nauseous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INSERT > INSERT > SELECT Одним запросом
AkinanauseousОдин наверное лучше с точки зрения нагрузки, так?В общем случае нет.
А вот послать серверу два запроса одним пакетом - может быть и разумно. Если коннектор умеет... ну или оформить эту хрень как процедуру.эта хрень и есть кусок процедуры )) которая уже давно на глаза попадается, иначе нельзя, а костыли я не люблю ((
Спасибо! Буду думать....
...
Рейтинг: 0 / 0
20.05.2016, 10:59
    #39239808
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INSERT > INSERT > SELECT Одним запросом
Можно попробовать так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SET @value := "bla bla bla";

INSERT INTO table1
SET
	value = @value
ON DUPLICATE KEY UPDATE
	value = VALUES(value);

INSERT INTO table2 (id) 
SELECT LAST_INSERT_ID();
...
Рейтинг: 0 / 0
20.05.2016, 11:09
    #39239815
nauseous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INSERT > INSERT > SELECT Одним запросом
miksoft,

ON DUPLICATE KEY UPDATE
не факт что при втором запросе LAST_INSERT_ID() что-то вернет
...
Рейтинг: 0 / 0
20.05.2016, 11:20
    #39239824
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INSERT > INSERT > SELECT Одним запросом
nauseousmiksoft,

ON DUPLICATE KEY UPDATE
не факт что при втором запросе LAST_INSERT_ID() что-то вернетСам не пробовал, однако в доке написано:
http://dev.mysql.com/doc/refman/5.7/en/insert-on-duplicate.html f a table contains an AUTO_INCREMENT column and INSERT ... ON DUPLICATE KEY UPDATE inserts or updates a row, the LAST_INSERT_ID() function returns the AUTO_INCREMENT value.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / INSERT > INSERT > SELECT Одним запросом / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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