Вы можете попробовать что-то вроде этого (см. fiddle ). Я выбрал PostgreSQL в качестве примера, потому что Informix - это продукт, который происходит от стабильной версии Postgres (в них принимал участие Майкл Стоунбрейкер), и я не знаю ни одной скрипки Informix, о которой я знаю. Эти обновления могут быть сложными из-за различного синтаксиса среди поставщиков.
Создание и заполнение таблицы inventory
:
CREATE TABLE inventory
(
item_id INTEGER NOT NULL,
location_id VARCHAR (25) NOT NULL
);
INSERT INTO inventory VALUES (123453, '12-099'), (123454, '12-100'), (123456, '12-101'),
(123457, '12-102'), (123458, '12-103');
То же самое для temp_inv
:
CREATE TABLE temp_inv
(
item_id INTEGER NOT NULL,
location_id VARCHAR (25) NOT NULL
);
INSERT INTO temp_inv VALUES (123456, '13-101'), (123457, '13-102'), (123458, '13-103');
Затем выполните следующий SQL:
UPDATE inventory
SET location_id = temp_inv.location_id
FROM temp_inv
WHERE inventory.item_id = temp_inv.item_id;
Результат (как и ожидалось):
3 rows affected
Затем
SELECT * FROM inventory;
Результат:
item_id location_id
123453 12-099
123454 12-100
123456 13-101
123457 13-102
123458 13-103
Et voilà! ps добро пожаловать на форум! : -)