Поскольку данные в таблице 1 зависят от данных в таблице 2, вы не сможете напрямую «обновить» таблицу 1.
Вы должны будете выполнить обновление на таблице 2, а затем пересчитать таблицу 1.
Вы можете сделать это внутри транзакции или, возможно, триггер на таблицу 2.
Другим вариантом может быть, чтобы иметь таблицу один только удерживает внешние ключи и имя, а затем создает представление, которое вычисляет значение X1-X2.
EDIT
После просмотра данных выборки, я не думаю, что можно однозначно есть таблица 2 будет обновление в результате обновления на таблице 1.
Например, если вы обновляете второй столбец таблицы 1, чтобы быть 43, как вы знаете, какие значения установить конкретные строки таблицы 2 (это может быть 40 и 3, 20 и 23 и т.д.)
Поскольку у вас есть X1 и X2 в таблице 2, зачем вам нужны fk1 и fk2. Вы не можете использовать только один? –
, потому что таблица 1 имеет 2 строки, сопоставленные с таблицей 2 –
Итак, какие строки (-ы) соответствуют x1 и x2? –