Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / замена строки с копии / 7 сообщений из 7, страница 1 из 1
20.12.2014, 18:45:47
    #38838786
judas777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена строки с копии
Здравствуйте уважаемые гуру
Подскажите метод, которым можно заменить строку значениями с другой таблицы.
Например
Есть таблица test и её идентичная копия backup_test
создать запись можно очень просто INSERT INTO backup_test SELECT * TEST where id=значение.

Вопрос: как заменить информацию в уже созданной строчке

п.с прочитал в документации вот это
Compatibility
This command conforms to the SQL standard, except that the FROM and RETURNING clauses are PostgreSQL extensions, as is the ability to use WITH with UPDATE.

According to the standard, the column-list syntax should allow a list of columns to be assigned from a single row-valued expression, such as a sub-select:
UPDATE accounts SET (contact_last_name, contact_first_name) =
(SELECT last_name, first_name FROM salesmen
WHERE salesmen.id = accounts.sales_id);

This is not currently implemented — the source must be a list of independent expressions.

Some other database systems offer a FROM option in which the target table is supposed to be listed again within FROM. That is not how PostgreSQL interprets FROM. Be careful when porting applications that use this extension.


но UPDATE SET (SELECT) не работает
...
Рейтинг: 0 / 0
21.12.2014, 09:45:58
    #38838901
judas777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена строки с копии
- тема закрыта, решение нашёл-
(может способ и "топорный" но работоспособный)
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
-- восстановление значений полей строки с другой строки таблицы
CREATE OR REPLACE FUNCTION restore_current_row(tablename text, rowid integer, backid integer) 
  RETURNS void AS
$BODY$
  DECLARE _ROW record;
BEGIN
  FOR _ROW IN (SELECT column_name FROM information_schema.columns 
     WHERE table_name=$1 and table_schema='public' and column_name<>'id')
  LOOP
     EXECUTE 'UPDATE "'||tablename||'" SET '||_ROW.column_name||'='||
       '(SELECT '||_ROW.column_name||' FROM "'||tablename||'"' WHERE id='||backid||') WHERE id='||rowid;         
  END LOOP;
  
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
...
Рейтинг: 0 / 0
21.12.2014, 12:00:05
    #38838961
torbasow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена строки с копии
judas777,

из! Из другой таблицы! Что же вы все пишете «с» вместо «из»? Тогда уж надо писать и «на таблице».
...
Рейтинг: 0 / 0
21.12.2014, 12:41:22
    #38838996
замена строки с копии
torbasowjudas777,

из! Из другой таблицы! Что же вы все пишете «с» вместо «из»? Тогда уж надо писать и «на таблице».та он с винницы
вот не надо было шпынять за местные диалекты и диалектизмы -- по сю пору на украиние (в окраинной провинции) жили бы ураинцы (окраинные провинциалы), а не упоротые свидомиты
по секрету скажу: кубаноиды -- те тоже на южных диалектах балакают, да курские тож. не на ляхотской мове, конечно, но и не на масковском базарном аль питерском "литературно"--писарском

вы, торбасов, так одинодинкаете, что сразу видно -- клятый московит. и даже эмо, небось.
осталось еще кучу непарных скобочек воткнуть -- и ващще молодца

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

https://yandex.ru/yandsearch?clid=2186618&text="я скучаю за тобой"
...
Рейтинг: 0 / 0
24.12.2014, 18:22:30
    #38842061
judas777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена строки с копии
авториз! Из другой таблицы!
авторпо секрету скажу
по сути сказать что-то можете "интеллектуалы" ?
...
Рейтинг: 0 / 0
25.12.2014, 12:09:36
    #38842611
ты, этта
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена строки с копии
judas777авториз! Из другой таблицы!
авторпо секрету скажу
по сути сказать что-то можете "интеллектуалы" ?
по существу:
-- существо не знало слово UPDATE и должно бы обтекать
а ссуть ли, не ссуть ли -- не его, существа, дело
...
Рейтинг: 0 / 0
25.12.2014, 12:37:11
    #38842664
ты, этта
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена строки с копии
существо<>
но UPDATE SET (SELECT) не работает
вот так работает, пользуюсь
Код: sql
1.
2.
3.
4.
UPDATE test
   SET (id, txt)= (t.id,t.txt )
FROM test t
WHERE t.id = test.id;


но да, через * не укажешь, печалька
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / замена строки с копии / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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