Если Вы твердый код вставленный класс, Вам нужен тот класс, доступны во время компиляции. С конфигурационным файлом Вы могли изменить используемую пилу (в Вашем случае) во времени выполнения, не перекомпилировав и даже использовать пилу, взятую от новой банки, которую Вы просто поместили в путь к классу. Если это стоит дополнительной сложности, зависит от задачи, которую необходимо решить.
1. Вставьте в A все, что было добавлено в B
INSERT INTO a(id1, match1, value1)
SELECT id2, match2, value2
FROM b WHERE NOT EXISTS (SELECT 1 FROM a WHERE a.match1 = b.match2)
2. Удалите из A все, что было удалено из B
DELETE FROM a
WHERE match1 IN (SELECT match1 FROM a INNER JOIN B ON A.match1 = B.match2)
3. Обновите A с измененными полями из B
UPDATE a
SET value1 = (SELECT value2 FROM b WHERE a.match1 = b.match2)
Я построил хранимую процедуру для правильного объединения всего. Спасибо за ответы. Это то, чем я буду заниматься.
BEGIN
DECLARE loop_done INT;
DECLARE orphan varchar(255);
DECLARE CONTINUE HANDLER FOR NOT FOUND SET loop_done=1;
INSERT INTO a(id1, match1, value1)
SELECT '', match2, value2
FROM b WHERE NOT EXISTS (SELECT 1 FROM a WHERE a.match1 = b.match2);
UPDATE a SET value1 = (SELECT value2 FROM b WHERE a.match1 = b.match2);
/* This Delete statement works better for MySQL. */
SET loop_done=0;
SET orphan=null;
SELECT id1 INTO orphan FROM a left join b on (b.match2 = a.match1) where b.id2 is null LIMIT 1;
WHILE (loop_done=0) DO
DELETE FROM a WHERE id1=orphan;
SELECT id1 INTO orphan FROM a left join b on (b.match2 = a.match1) where b.id2 is null LIMIT 1;
END WHILE;
END
TRUNCATE TABLE A;
INSERT INTO A (id1, match1, value1)
SELECT id2, match2, value2 FROM B;