将数据从一个表移动到另一个表

发布于 2024-12-06 12:33:48 字数 345 浏览 2 评论 0原文

这个问题似乎已经回答过多次了。然而没有一个符合我需要的标准。

是否可以从 Mysql 中的原始表中选择(并将它们插入到另一个表中)并删除行,而无需运行所选条件两次?

例如,我可以这样做:

INSERT INTO main (SELECT * FROM temp WHERE age > 30)
DELETE FROM cache WHERE age > 30

但是,对于一个非常复杂且长时间运行的查询,查询的“匹配部分”将执行两次,而我认为应该有一个解决方案来删除所选项目,因为您已经获取了它们无论如何。

我的问题是,这可能吗?如果可能的话。如何?

This question seems to be answered multiple times. However none match the criteria I need.

Is it possible to select (and insert them in another table) and delete rows from the original table in Mysql without running the selected criteria twice?

For example I could do this:

INSERT INTO main (SELECT * FROM temp WHERE age > 30)
DELETE FROM cache WHERE age > 30

However with a very complex and long running query the 'match part' of the query would be executed twice, whilst I think that there should be a solution to delete the selected items, since you have fetched them already anyways.

My question, is this possible, and if so. How?

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

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

发布评论

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

评论(1

沩ん囻菔务 2024-12-13 12:33:48

不,你不能那样做。

如果您担心作业之间表的完整性,则应该使用事务。

No you can't do that.

You should use a transaction if you are worried about the integrity of your tables in between the job.

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