我有一个长而复杂的MySql语句,它将记录插入到表中。然而,它变得如此复杂,以至于在我的2k记录表上花了很长时间(我在22,000秒后就把它杀死了,它过去需要500秒)。
作为一个测试,我尝试在100个记录循环中运行它,例如While ID<101 and ID<200。
所以我想我应该设置一个循环,每次遍历100个记录,直到它插入了所有的记录。
我不想/不需要设置一个过程,我只是想知道在语句本身中是否存在一些语法,而不是创建每个示例似乎都包含的存储过程。
发布于 2022-05-10 15:50:06
不,在MySQL中没有这样的语法。如果您需要编写循环或其他编程构造,则假设您将在某些客户端应用程序中编写代码。你可以选择你认为最有效率的语言。我会将Python用于快速的单用脚本,并且可能会使用我想要多次使用的工具。
从最初的时候起,SQL就打算成为一种数据操作语言,并在其他编程语言中进行集成,以提供更通用的编程结构。
MariaDB是一种不同的数据库产品,从MySQL的一个分支开始。他们引入了语法来使用存储例程(https://mariadb.com/kb/en/using-compound-statements-outside-of-stored-programs/)之外的复合语句。但我看不出有什么吸引力。如果您更习惯使用传统的编程语言,那么就这样做。
https://stackoverflow.com/questions/72189190
复制相似问题