ВСТАВИТЬ НА ДУБЛИКАТ из другой таблицы

#mysql

Вопрос:

Я много читал, прежде чем спрашивать, но так как я новичок в MYSQL, ответы были для меня немного запутанными, поэтому позвольте мне попытаться задать свой собственный вопрос и посмотреть, может ли кто-нибудь помочь.

У меня есть таблица под названием «анализ», и в этой таблице есть данные, которые мне нужно добавить в другую таблицу под названием «обновления».

Хорошо, итак, «обновления» созданы, но теперь я обновил данные из анализа (это источник данных), и обе таблицы имеют уникальный идентификатор под названием «ссылка».

Я планировал запустить «ВСТАВИТЬ В ДУБЛИКАТ», но не знал, как это сделать. Таким образом, в основном поле «ссылка» является уникальным идентификатором, который должен оставаться одинаковым в обеих таблицах, но остальные будут обновляться, например, как цена в таблице «обновления».

Можете ли вы подсказать мне, как это сделать?

Спасибо

Комментарии:

1. так что же я ищу? Может БЫТЬ, ОБНОВИТЬ ДУБЛИКАТ?

2. Я удалил свой первоначальный комментарий, я не полностью прочитал ваш вопрос.

3. Каково CREATE TABLE определение updates и parse ?

4. Попробуйте ОБНОВИТЬ ДУБЛИКАТ КЛЮЧА, как объяснил @Dai

Ответ №1:

Соответствующее заявление будет иметь такую форму:

 INSERT INTO destination (
    -- List columns in `destination` here.
)
SELECT
    -- List columns from `source` here. Ensure they correspond to the columns listed for `destination` exactly otherwise you'll get an error (or worse: unintentional data corruption).
FROM
    source
ON DUPLICATE KEY UPDATE
    -- List both `destination` and `source` columns again here, excluding immutable and key columns. Refer to the source column via `VALUES()`.
 

В вашем случае что-то вроде этого:

 INSERT INTO "updates" (
    link, /* PK */
    a,
    b,
    c,
    d
)
SELECT
    link,
    a,
    b,
    c,
    d
FROM
    "parse"
ON DUPLICATE KEY UPDATE
    a = VALUES(a),
    b = VALUES(b),
    c = VALUES(c),
    d = VALUES(d);
 

Комментарии:

1. Приятно, большое вам спасибо ! Правильно ли это звучит? ВСТАВИТЬ В «обновления» (Продукт, Цена, Ссылка ) ВЫБЕРИТЕ Продукт, Цену, Ссылку ИЗ «разбора» НА ДУБЛИКАТ КЛЮЧА ОБНОВЛЕНИЯ Продукт = ЗНАЧЕНИЯ(Продукт), Цена = ЗНАЧЕНИЯ(Цена);

2. Да, это выглядит прекрасно.