Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / INSERT ... SELECT ... ON DUPLICATE KEY UPDATE / 5 сообщений из 5, страница 1 из 1
29.08.2013, 12:15:15
    #38380844
ugodrus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INSERT ... SELECT ... ON DUPLICATE KEY UPDATE
Код: sql
1.
2.
3.
4.
5.
6.
INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name [(col_name,...)]
    SELECT ...
    [ ON DUPLICATE KEY UPDATE
      col_name=expr
        [, col_name=expr] ... ]


конструкция всем знакома )

два вопроса
1: можно ли привязать значения из селекта к контексту ON DUPLICATE KEY (например inserttable.colname = selecttable.colname)
2: если ответ на первый вопрос положителен... то как привязать по тому же принципу поля без таблицы (например SELECT 1 as col1, 2 as col2, 3 as col3 ,"abc" as col4 )

просто появилась потребность а на эксперименты времени не хватает )
...
Рейтинг: 0 / 0
29.08.2013, 12:40:24
    #38380916
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INSERT ... SELECT ... ON DUPLICATE KEY UPDATE
ugodrus,
1)в ртфм е ищете строку "You can use the VALUES(col_name)" и читаете.
2)вопрос непонятен, точнее, непонятно, что может быть непонятно после вкуривания ответа на первый вопрос :)
...
Рейтинг: 0 / 0
29.08.2013, 13:24:45
    #38381002
ugodrus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INSERT ... SELECT ... ON DUPLICATE KEY UPDATE
tanglir, спасибо... в принцип вьехал

тогда в догонку ещё одна фишка.
порой эта конструкция влияет на autoincrement
например таблица t1:
id int(11) US NN PK AI
name char(50) NN UK
summa int(11) NN;

при запросе
INSERT INTO t1 (`name`,`course`)
SELECT "some_name" , 1
ON DUPLICATE KEY UPDATE
course = values(`course`);

время от времени увеличивает автоинкремент .. по крайней мере при совпадении name c name при id =1
хотя может быть с ключами что-то намудрил
...
Рейтинг: 0 / 0
29.08.2013, 13:26:38
    #38381010
ugodrus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INSERT ... SELECT ... ON DUPLICATE KEY UPDATE
пардон ... запрос некорректно вставил

INSERT INTO t1 (`name`,`summa`)
SELECT "some_name" , 1
ON DUPLICATE KEY UPDATE
summa = values(`summa`);
...
Рейтинг: 0 / 0
29.08.2013, 13:27:32
    #38381012
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INSERT ... SELECT ... ON DUPLICATE KEY UPDATE
ugodrusвремя от времени увеличивает автоинкрементЧто, ON DUPLICATE KEY срабатывает на дублирование автоинкрементного ключевого поля? не верю...
В любом (АБСОЛЮТНО любом) другом случае - всё нормально.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / INSERT ... SELECT ... ON DUPLICATE KEY UPDATE / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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