也就是说,使用具有一些初始唯一数据的临时表,然后一次填充一个或多个字段。有时它会使代码看起来更具可读性,但它也会导致程序类型的思考。它也比使用派生表或其他方法慢。它在行业中是否气馁?
也就是说,使用具有一些初始唯一数据的临时表,然后一次填充一个或多个字段。有时它会使代码看起来更具可读性,但它也会导致程序类型的思考。它也比使用派生表或其他方法慢。它在行业中是否气馁?
如果所有基于集合的操作都是a)实现并且b)在所有引擎中有效,那将是一种不好的做法。
但是,对于某些任务(如模拟 LAG
和 LEAD
在 SQL Server
,自动生成的级联上的长插入链 id
是几个表等),临时表或表变量是一个很好的解决方案。
您应该注意,临时表经常由引擎本身创建并删除,以用于涉及的操作 using temporary
在 MySQL
, spool
在 SQL Server
等等
因此,每次创建临时表时,您都应该问自己一个问题:
如果答案是“我知道但优化器没有”,则创建表。如果可能,优化器也会这样做。