MySQL генерирует вставку sql для зависимых таблиц - PullRequest
2 голосов
/ 25 июня 2011

Мне нужно создать сценарий sql для вставки во многие таблицы - всего около 2000, но таблицы связаны (это модель смежности xml) - поэтому после вставки в table1, получения идентификатора, добавления некоторых данных, вставки в fk таблицы2 -предыдущий идентификатор и данные, после повтора для table3, для таблицы 4, ... Длина цепочки связанных таблиц - более 20. Вопрос: существует некоторый генератор кода, который может считывать отношения между таблицами из информационной схемы и - после точкикакая-нибудь таблица как root - генерировать все дерево запроса вставки?Спасибо.

1 Ответ

1 голос
/ 09 декабря 2011

Если вы не можете сделать это на прикладном уровне, я предлагаю попробовать сделать это с помощью Триггеры .

По сути, вы должны создать триггер «ПОСЛЕ ВСТАВКИ» для каждой из таблиц. Что-то вроде этого:

CREATE TRIGGER t1
AFTER INSERT ON table1
FOR EACH ROW
BEGIN
INSERT INTO table2 (id, attrib2) VALUES(NEW.id, NEW.attrib2);
END

CREATE TRIGGER t2
AFTER INSERT ON table2
FOR EACH ROW
BEGIN
INSERT INTO table3 (id, attrib3) VALUES(NEW.id, NEW.attrib3);
END

Затем вставка в таблицу1 инициирует вставку в таблицу2, что приведет к вставке в таблицу3 и т. Д.

...