Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.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_Mysql 8.0 - Fatal编程技术网

如何在mysql中创建没有索引或键的临时表?

如何在mysql中创建没有索引或键的临时表?,mysql,mysql-8.0,Mysql,Mysql 8.0,创建临时文件: CREATE TABLE person ( firstname varchar(20), lastname varchar(20), UNIQUE KEY unique_lstanme (lastname) ); 结果:显示唯一键。为什么?我一直认为临时表是在没有索引的情况下创建的 我可以防止这种情况发生,还是必须在临时表上删除显式索引?是否有sql命令可以删除临时表上的任何现有索引而不必命名它们?在mysql中,临时表可以有索引,而创建临时表。。。就像

创建临时文件:

CREATE TABLE person (
    firstname varchar(20),
    lastname varchar(20),
    UNIQUE KEY unique_lstanme (lastname)
);
结果:显示唯一键。为什么?我一直认为
临时表是在没有索引的情况下创建的


我可以防止这种情况发生,还是必须在临时表上删除显式索引?是否有sql命令可以删除临时表上的任何现有索引而不必命名它们?

在mysql中,临时表可以有索引,而
创建临时表。。。就像…
保留索引一样,您对此无能为力

将语句与
limit 0
子句一起使用,因为

创建表格。。。SELECT不会自动为您创建任何索引。这样做是为了使声明尽可能灵活。如果希望在创建的表中具有索引,则应在SELECT语句之前指定这些索引

因此,您的声明将类似于:

CREATE TEMPORARY TABLE person_tmp LIKE person;
SHOW INDEX FROM person_tmp;
CREATE TEMPORARY TABLE person_tmp
AS SELECT * FROM person LIMIT 0;