Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql:为查询创建一个常规表而不是一个临时表是一种好的做法吗?_Mysql - Fatal编程技术网

mysql:为查询创建一个常规表而不是一个临时表是一种好的做法吗?

mysql:为查询创建一个常规表而不是一个临时表是一种好的做法吗?,mysql,Mysql,我需要将查询的所有结果放到一个临时表中,然后从中进行选择,但是由于临时表的性质,我不能在同一个查询中多次引用它。那么,是否可以为此创建一个唯一命名的正则表,并在查询完成后将其删除?还是有更好的方法 我尝试使用派生表,但无法从不同的块访问它。这不一定是一个好做法与否的问题。无论是常规表、临时表还是派生表,它们在试图完成任务时都有其用途。因此,创建常规表或临时表完全取决于您以及您希望应用程序在一天结束时完成的任务 但根据您的问题,在这种情况下,您可能需要创建一个常规表,因为您需要多次访问该表,并且可

我需要将查询的所有结果放到一个临时表中,然后从中进行选择,但是由于临时表的性质,我不能在同一个查询中多次引用它。那么,是否可以为此创建一个唯一命名的正则表,并在查询完成后将其删除?还是有更好的方法


我尝试使用派生表,但无法从不同的块访问它。

这不一定是一个好做法与否的问题。无论是常规表、临时表还是派生表,它们在试图完成任务时都有其用途。因此,创建常规表或临时表完全取决于您以及您希望应用程序在一天结束时完成的任务


但根据您的问题,在这种情况下,您可能需要创建一个常规表,因为您需要多次访问该表,并且可以在完成后删除该表。

@草莓,据我所知,如下所示:选择*从选择*从foobar作为foo//第一个块,其中选择count*从foo作为f//第二个块,其中。。。。派生表可能更可取。我建议您提供适当的DDL和/或SQLFIDLE以及所需的结果。在MySQL支持SQL Server风格的CTE公共表表达式之前,如果使用内联视图不可行,那么临时表是最接近的。在我看来,临时表的最大好处是它们只对当前会话可见;如果要使用常规表,则该表将对所有会话可见。。。考虑两个并发会话试图创建、填充、查询和删除同一表时发生的错误类型。与内联视图相比,临时表的好处是它们在单个查询之外保持不变。@spencer7593,正如我在问题中所指定的,我将唯一地命名该表,以确保这种情况不会发生。注意:临时表仅对当前会话可见。常规表将对所有会话可见。对于并发性,常规表的名称对于每个会话都必须是唯一的。@spencer7593考虑到这些注意事项,建议实现此方法吗?