MySQL为依赖表生成sql插入

发布于 2024-11-17 14:19:15 字数 196 浏览 2 评论 0原文

我需要创建sql脚本来插入许多表 - 总数接近2000,但表链接(它是一个xml邻接模型) - 所以在插入table1之后,接收id,添加一些数据,插入table2的fk - 先前的id,和数据,重复表 3、表 4 后,... 链接表链的长度 - 超过 20。 问题是:是否存在一些代码生成器,可以从信息模式中读取表之间的关系,并在将某个表作为根之后生成所有插入查询树? 谢谢。

I need create sql script for insert in many tables - total near 2000, but tables linked (it is an xml adjancency model) - so after have inserted in table1, receive id, add some data, insert into fk of table2 - previous id, and data, after repeat for table3, for table 4,...
Length of chain of linked tables - more than 20.
The question is: exists some code generator that can read relations between tables from information schema and - after point some table as root - generate all tree of insert query?
Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

嘴硬脾气大 2024-11-24 14:19:15

如果您无法在应用程序层执行此操作,我建议尝试使用 触发器

本质上,您可以在每个表上创建一个“AFTER INSERT”触发器。就像这样:

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

然后,对 table1 的插入将触发对 table2 的插入,这将触发对 table3 的插入,依此类推。

If you can't do it on application layer, I suggest trying to do it with Triggers.

Essentially, you would create an "AFTER INSERT" Trigger on each of the tables. Smth like that:

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

Then, an insert into table1 would trigger an insert into table2, which would trigger an insert into table3 and so on.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文