powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / update таблицы
17 сообщений из 17, страница 1 из 1
update таблицы
    #35687477
otnan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите пожалуйста, как сделать:
есть tab файл с Id-ками (выборка из одной таблицы)
нужно по этим id-никам изменить данные в другой таблице.
как сделать чтобы id-ники брались последовательно для update???
...
Рейтинг: 0 / 0
update таблицы
    #35687504
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ХП:
FOREACH
SELECT id
INTO v_id
....
ORDER BY id

UPDATE ...
WHERE id = v_id
END FOREACH

П.С.: Это так важно? 8-[ ]

А как делаете НЕПОСЛЕДОВАТЕЛЬНО?
...
Рейтинг: 0 / 0
update таблицы
    #35687593
otnan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо!

я не правильно выразилась, не в смысле последовательно, а просто по всем Id-кам.
только учусь, не знала - FOREACH.
еще раз спасибо! помогли!
...
Рейтинг: 0 / 0
update таблицы
    #35687702
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
otnanСпасибо!
Не спеши, потому как это один из правильных ответов на неправильный вопрос :)
Как правильный вопрос то звучит? Глядишь, попроще чего посоветуем... :)

Код: plaintext
1.
2.
UPDATE tab2
  SET ....
    WHERE id IN (SELECT id FROM tab1);
...
Рейтинг: 0 / 0
update таблицы
    #35687704
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛой

точнее

Код: plaintext
1.
2.
UPDATE tab2
  SET ....
    WHERE id IN (SELECT tab1.id FROM tab1);
...
Рейтинг: 0 / 0
update таблицы
    #35687908
Фотография TmpFile()
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UPDATE tab2
SET field = (select tab1.field from tab1 where tab1.id = tab2.id)
WHERE id IN (SELECT tab1.id FROM tab1);
...
Рейтинг: 0 / 0
update таблицы
    #35688135
otnan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
точнее будет так:
есть 2 базы,
в одной таблица table1 (id,name,tel)
в другой table1 (id,tel)
нужно в одной базе выбрать по определенному значению поля name, поменять значения поля tel и выбрать id.
потом в другой базе по этим id поменять значения поля tel.

только учусь, знаю что есть оптимальнее способ....в массив их загнать наверное, но как незнаю.
...
Рейтинг: 0 / 0
update таблицы
    #35688279
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
otnan, по одному name находится одна запись?
на входе задачи 1 name или несколько?
...
Рейтинг: 0 / 0
update таблицы
    #35688300
otnan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
по 1 name ищется, у 1 name много tel
...
Рейтинг: 0 / 0
update таблицы
    #35688339
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
DATABASE db2;

UPDATE table1
  SET tel = (
           SELECT t1.tel 
             FROM db1:table1 t1
               WHERE t1.id = table1.id)
    WHERE id IN (
        SELECT t2.id 
           FROM db1:table1 t2
              WHERE t2.name = :p_name
     );
...
Рейтинг: 0 / 0
update таблицы
    #35689451
otnan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

да, в принцыпе понятно..... только в первой базе же тоже нужно заменить все значения поля tel, при поиске по name, а потом уже выбрать id для замены по ним во второй базе.
как тут еще один update впихнуть?
...
Рейтинг: 0 / 0
update таблицы
    #35689736
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
otnanтолько в первой базе же тоже нужно заменить все значения поля tel, при поиске по name
Заменить на что? :)
...
Рейтинг: 0 / 0
update таблицы
    #35689863
otnan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну тут получается, что апдейтим поле tel в одной базе по тому чему оно равно в поле tel в таблице в другой базе.
а нужно еще проапдейтить поле tel в db1, потом выбрать id того что проапдейтили и по этим id поменять во второй базе поле tel.

DATABASE db1;
update table1 set tel=123 where name=abc;

DATABASE db2;
UPDATE table1
SET tel = (
SELECT t1.tel
FROM db1:table1 t1
WHERE t1.id = table1.id)
WHERE id IN (
SELECT t2.id
FROM db1:table1 t2
WHERE t2.name = :p_name
);

а как-нидь в одном запросе можно?
...
Рейтинг: 0 / 0
update таблицы
    #35690185
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
otnanпо 1 name ищется, у 1 name много tel
otnan
Код: plaintext
update table1 set tel= 123  where name=abc;


тогда эта фраза поменяет ВСЕ номера по заданному name...
может нужно что-то типа

Код: plaintext
update table1 set tel='123' where name='abc' and tel = '321';
?

и что значит "в одном запросе?"
одним UPDATE? синтаксис две таблицы обновлять так не позволяет...

нужна ХП или триггер
...
Рейтинг: 0 / 0
update таблицы
    #35690473
otnan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да...я вообще то сразу некорректно написала....прошу прощения
я не весь tel меняю, а tel[1], поэтому у одного name меняется много tel.

да..глупость получилась, про 2 update/

а как может помочь ХП - базы то разные.
и тригер тоже не очень понятно.

может лучший вариант, это просто скрипт написать, эти 2 update туда, как параметр name менять?
...
Рейтинг: 0 / 0
update таблицы
    #35690482
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
otnan
а как может помочь ХП - базы то разные.

Вас же в моём примере update таблицы одной БД данными из другой БД не смутил?! :)
Точно так же это выглядит и в ХП...

otnan
может лучший вариант, это просто скрипт написать, эти 2 update туда, как параметр name менять?
Вот тут никаких оценок дать не могу - я же не знаю каким Вы окружением пользуетесь...
...
Рейтинг: 0 / 0
update таблицы
    #35690550
otnan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
linux, скрипт простой sh.
спасибо!!! вы мне очень помогли!!! :)
теперь попробую скриптик такатать.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / update таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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