Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PostgreSQL Новый топик    Ответить
 Копировать из таблицы1 в таблицу2 заменив часть значений  [new]
wlad1164
Member

Откуда:
Сообщений: 9
Имею 2 таблицы
aaauser (user_id, first_name, middle_name, last_name, createdtime, description)
sduserprofile (userid, timezoneid, date_format, time_format, signature, kbshortcust, profile_pic_path)

Нужно заполнить таблицу 2 данными:

userid=user_id (из таблицы aaauser )
timezoneid=380 (одинаковое для всех строк)
date_format= 'dd.MM.yyyy' (одинаково для всех строк)
time_format='dd.MM.yyyy HH:mm' (одинаково для всех строк)
signature=NULL (одинаково для всех строк)
kbshortcust=NULL (одинаково для всех строк)
profile_pic_path=NULL (одинаково для всех строк)

Причем если в таблице sduserprofile уже существует userid с таким же номером то для него нужно перезаписать значения
8 окт 17, 01:37    [20851686]     Ответить | Цитировать Сообщить модератору
 Re: Копировать из таблицы1 в таблицу2 заменив часть значений  [new]
982183
Member

Откуда:
Сообщений: 1340
Т.Е не "заполнить", а обновить и добавить?
Два запроса.
Один на обновление. Другой на добавление.

Пробовал начать?

Много лишней инфы.
В частности описанные поля aaauser (first_name, middle_name, last_name, createdtime, description)
Никак не участвуют в процессе работы.
8 окт 17, 03:27    [20851709]     Ответить | Цитировать Сообщить модератору
 Re: Копировать из таблицы1 в таблицу2 заменив часть значений  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 1589
INSERT ... ON CONFLICT UPDATE
8 окт 17, 09:32    [20851776]     Ответить | Цитировать Сообщить модератору
 Re: Копировать из таблицы1 в таблицу2 заменив часть значений  [new]
wlad1164
Member

Откуда:
Сообщений: 9
982183,
конечно побывал, даже сделал, но очень пещерным методом:
1.
DELETE FROM sduserprofile

2.
SELECT user_id FROM aaauser

3. скопировал все значения в excel
4. для каждого id создал команду
INSERT INTO sduserprofile (userid, timezoneid, date_format, time_format) VALUES (1, 415, 'dd.MM.yyyy', 'dd.MM.yyyy HH:mm');

5. полученный список команд скормил командной строке

Результат получен, но вот метод ну прям очень пещерый)
8 окт 17, 12:55    [20852038]     Ответить | Цитировать Сообщить модератору
 Re: Копировать из таблицы1 в таблицу2 заменив часть значений  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 43927
RTFM MERGE.
8 окт 17, 13:46    [20852087]     Ответить | Цитировать Сообщить модератору
 Re: Копировать из таблицы1 в таблицу2 заменив часть значений  [new]
982183
Member

Откуда:
Сообщений: 1340
Ролг Хупин предложил замечательный метод.
8 окт 17, 13:56    [20852097]     Ответить | Цитировать Сообщить модератору
Все форумы / PostgreSQL Ответить