Кому-то, может, пригодится...
Код:
alter table smcard disable all triggers;
update smcard c set idclass=(SELECT z.id
FROM sacardclass k, sacardclass z
where (k.ID = c.idclass)
AND (SUBSTR ( k.tree, 1, INSTR (k.tree, '.', -1, 2)) = z.tree))
WHERE c.IDCLASS in (select id from sacardclass k where (INSTR (k.tree, '.', 1, 5) = LENGTH (k.tree)));
alter table smcard enable all triggers;
при этом карточки должны перенестись из 5го уровня в 4й, родительский. Обращаю внимание, в этот момент никого в базе быть не должно! И на почтовые рассылки этот скрипт не влияет, т.е. карточки не рассылаются.
Код:
SELECT c.NAME , k.tree, z.tree
FROM smcard c, sacardclass k, sacardclass z
WHERE (INSTR (k.tree, '.', 1, 5) = LENGTH (k.tree))
AND (k.ID = c.idclass)
AND (SUBSTR (k.tree, 1, INSTR ( k.tree, '.', -1, 2)) = z.tree);
этот скрипт должен отобразить список карточек с указанием откуда куда они будут переноситься.