gpt4 book ai didi

mysql - 如何在没有索引或键的情况下在 mysql 中创建 TEMPORARY TABLE?

转载 作者:行者123 更新时间:2023-11-29 05:47:22 25 4
gpt4 key购买 nike

CREATE TABLE person (
firstname varchar(20),
lastname varchar(20),
UNIQUE KEY unique_lstanme (lastname)
);

临时创建:

CREATE TEMPORARY TABLE person_tmp LIKE person;
SHOW INDEX FROM person_tmp;

结果:显示唯一键。为什么?我一直认为 TEMPORARY 表是在没有索引的情况下创建的?

我可以阻止这种情况吗,或者我是否必须显式删除临时表上的索引?是否有一个 sql 命令可以删除临时表上的任何现有索引而无需命名它们?

最佳答案

在 mysql 中,临时表可以有索引,create temporary table ... like ... 会保留索引,对此您无能为力。

使用create temporary table ... select ...limit 0 子句代替语句,因为

CREATE TABLE ... SELECT does not automatically create any indexes for you. This is done intentionally to make the statement as flexible as possible. If you want to have indexes in the created table, you should specify these before the SELECT statement.

所以,你的陈述看起来像这样:

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

关于mysql - 如何在没有索引或键的情况下在 mysql 中创建 TEMPORARY TABLE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58622577/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com